由于图片尺寸过大,Bitmap new 不出来
我想对图片大小进行压缩处理,需要用到Bitmap这个类,结果发现一旦图片尺寸过大,就无法创建Bitmap,我的代码如下(主要看第一行就够了),不知大家有何高见,可以将尺寸巨大的图片保存成大小较小的图片,而尺寸不发生变化using (Bitmap bitmap = new Bitmap(fileStream))--------------------编程问答-------------------- 你还是 用内存映射,一部分一部分的读入二进制流,部分部分的处理吧 --------------------编程问答-------------------- 可以指定生成的图片的格式为GIF或JPEG --------------------编程问答-------------------- 比如我试验的这张图片是9925*14038大小尺寸的图片,在代码的第一行报错 --------------------编程问答-------------------- 内存不够了。。。 --------------------编程问答--------------------
{
ImageCodecInfo CodecInfo = GetEncoder(System.Drawing.Imaging.ImageFormat.Jpeg);
System.Drawing.Imaging.Encoder myEncoder = System.Drawing.Imaging.Encoder.Quality;
EncoderParameters myEncoderParameters = new EncoderParameters(1);
EncoderParameter myEncoderParameter = new EncoderParameter(myEncoder, quality);
myEncoderParameters.Param[0] = myEncoderParameter;
using (MemoryStream ms = new MemoryStream())
{
bitmap.Save(ms, CodecInfo, myEncoderParameters);
myEncoderParameters.Dispose();
myEncoderParameter.Dispose();
return ms.ToArray();
}
}
我大概明白你的意思,可是我怎样才能从文件流中读取出图片的一部分,来一点一点的处理呢?处理完又怎样把他们拼接成一张图片呢? --------------------编程问答-------------------- 看看这个对你有帮助吗?
C#对超大图片处理 --------------------编程问答-------------------- 帮忙啊,实在是无从下手 --------------------编程问答--------------------
这个对他不会有帮助,因为200MB的图像对于系统来说还能够承受, 我自己的经验是500MB是个瓶颈,原因是一般情况下 系统无法为 程序 分配更大的连续内存。
--------------------编程问答-------------------- 把你的程序编译成64位程序试试看,
补充:.NET技术 , C#