public bool ThumbnailCallback()
{
return false;
}
public void Example_GetThumb()
{
Image.GetThumbnailImageAbort myCallback =
new Image.GetThumbnailImageAbort(ThumbnailCallback);
Bitmap myBitmap = new Bitmap("Climber.jpg");
Image myThumbnail = myBitmap.GetThumbnailImage(
100, 90, myCallback, IntPtr.Zero);}
以上代码可以获取100*90大小的图片.
至于尝试可以通过Palette来设置.
{
return false;
}
public void Example_GetThumb()
{
Image.GetThumbnailImageAbort myCallback =
new Image.GetThumbnailImageAbort(ThumbnailCallback);
Bitmap myBitmap = new Bitmap("Climber.jpg");
Image myThumbnail = myBitmap.GetThumbnailImage(
100, 90, myCallback, IntPtr.Zero);}
以上代码可以获取100*90大小的图片.
至于尝试可以通过Palette来设置.
public bool ThumbnailCallback()
{
return false;
}
public image Example_GetThumb()
{
Image.GetThumbnailImageAbort myCallback =
new Image.GetThumbnailImageAbort(ThumbnailCallback);
Bitmap myBitmap = new Bitmap("Climber.jpg");
Image myThumbnail = myBitmap.GetThumbnailImage(
100, 90, myCallback, IntPtr.Zero);
return myThumbnail;
}
以上代码可以获取100*90大小的图片.
至于深度可以通过Palette来设置.
System.Drawing.Image img = System.Drawing.Image.FromStream(new System.Net.WebClient().OpenRead(url));
Bitmap bmp = new Bitmap(img);
Bitmap pic = this.GetThumbnailImage(bmp);
System.IO.MemoryStream MS = new System.IO.MemoryStream();Response.Clear();
Response.ContentType = "image/gif";
if(img.RawFormat == System.Drawing.Imaging.ImageFormat.Png)
pic.Save(MS, System.Drawing.Imaging.ImageFormat.Gif);
else
pic.Save(MS, img.RawFormat);
MS.WriteTo(Response.OutputStream);//函数
private Bitmap GetThumbnailImage(Bitmap image)
{
Bitmap bm = new Bitmap(image.Width,image.Height);
for(int y = 0;y < image.Height;y++)
{
for(int x = 0 ;x<image.Width;x++)
{
Color c = image.GetPixel(x,y);
int luma = (int)(c.R * 0.3 + c.G * 0.59 + c.B * 0.11);
//int luma = (int)(c.R + c.G + c.B );
bm.SetPixel(x,y,Color.FromArgb(luma,luma,luma));
}
}
return bm;
}参考ivsee(爱谁谁)的例子,我得到的图片虽然文件小了些,但是是黑白的!
我希望颜色是彩色但深度小点!请教大虾了
bm.SetPixel(x,y,Color.FromArgb(luma,luma,luma));调整深度参考SDK:
ColorPalette 概述定义组成调色板的颜色的数组。这些颜色是 32 位 ARGB 颜色。不可继承。有关此类型所有成员的列表,请参阅 ColorPalette 成员。System.Object
System.Drawing.Imaging.ColorPalette[Visual Basic]
NotInheritable Public Class ColorPalette[C#]
public sealed class ColorPalette[C++]
public __gc __sealed class ColorPalette[JScript]
public class ColorPalette线程安全
此类型的所有公共静态(Visual Basic 中为 Shared)成员对多线程操作而言都是安全的。但不保证任何实例成员是线程安全的。备注
调色板中的颜色仅限为 32 位 ARGB 颜色。每个 32 位 ARGB 颜色的 alpha、红色、绿色和蓝色值各占 8 位。最低的 8 位组成蓝色位,旁边的 8 位为绿色位,再旁边的 8 位为红色位,最高有效的 8 位是 alpha。这表示每个分量都可以在 0 到 255 之间变化。完全打开时为 255,完全关闭时为 0。Alpha 用于使颜色值成为透明 (alpha = 0) 或不透明 (alpha = 255)。可以在不增加所用颜色数的情况下增加图像的亮度级别。此过程可创建所谓的半色调,它会提高对比度,但要降低分辨率。