private Bitmap UrlToImage(string url,bool IsCheckKongBai)
{
try
{
WebClient mywebclient = new WebClient();
url = url.Substring(0, 5).Contains("http") ? url : "http:" + url;
byte[] Bytes = mywebclient.DownloadData(url);
using (MemoryStream ms = new MemoryStream(Bytes))
{
Image outputImg = Image.FromStream(ms);
if(IsCheckKongBai)
{
bool IsKongBai = CheckTransparentImg(outputImg);
if (IsKongBai)
{
Console.WriteLine("空白图----" + url);
return null;
}
}
//判断是否是png的图
if (Fun.IsPixelFormatIndexed(outputImg.PixelFormat))
{
Bitmap bmp = new Bitmap(outputImg.Width, outputImg.Height, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
using (Graphics g = Graphics.FromImage(bmp))
{
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
g.DrawImage(outputImg, 0, 0);
g.Dispose();
}
return bmp;
}
else
{
Graphics g = Graphics.FromImage(outputImg);
ms.Close();
Bitmap b = new Bitmap(outputImg);
return b;
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString() + url + Environment.NewLine);
return null;
}
}
/// <summary>
/// 检查图片是否空白图片
/// </summary>
/// <param name="img">Image</param>
/// <returns>是否空白图片</returns>
public static bool CheckTransparentImg(Image img)
{
bool blnIsTransparent = false;
//加载位图
Bitmap bitMap = new Bitmap(img);
//图片总像素
int intAll = img.Height * img.Width;
int intCount = 0;
//按像素遍历
for (int intY = 0; intY < img.Height; intY++)
{
for (int intX = 0; intX < img.Width; intX++)
{
if( bitMap.GetPixel(intX, intY).GetBrightness() == 1)
{
intCount += 1;
}
}
}
float a = (float)intCount / (float)intAll;
Console.WriteLine(a.ToString() );
Console.WriteLine(intCount.ToString() + "---" + intAll.ToString());
//释放资源
bitMap.Dispose();
int al = intAll - 1000;
if (intCount > al)
{
blnIsTransparent = true;
}
return blnIsTransparent;
}
判断是否是空白图 和下载图片,希望能帮到你们!