当前位置:编程学习 > C#/ASP.NET >>

由于图片尺寸过大,Bitmap new 不出来

我想对图片大小进行压缩处理,需要用到Bitmap这个类,结果发现一旦图片尺寸过大,就无法创建Bitmap,我的代码如下(主要看第一行就够了),不知大家有何高见,可以将尺寸巨大的图片保存成大小较小的图片,而尺寸不发生变化
using (Bitmap bitmap = new Bitmap(fileStream))
                        {
                            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();
                            }
                        }
--------------------编程问答-------------------- 你还是 用内存映射,一部分一部分的读入二进制流,部分部分的处理吧 --------------------编程问答-------------------- 可以指定生成的图片的格式为GIF或JPEG --------------------编程问答-------------------- 比如我试验的这张图片是9925*14038大小尺寸的图片,在代码的第一行报错 --------------------编程问答-------------------- 内存不够了。。。 --------------------编程问答--------------------
引用 1 楼 bdmh 的回复:
你还是 用内存映射,一部分一部分的读入二进制流,部分部分的处理吧

我大概明白你的意思,可是我怎样才能从文件流中读取出图片的一部分,来一点一点的处理呢?处理完又怎样把他们拼接成一张图片呢? --------------------编程问答-------------------- 看看这个对你有帮助吗?
C#对超大图片处理 --------------------编程问答-------------------- 帮忙啊,实在是无从下手 --------------------编程问答--------------------
引用 6 楼 gxingmin 的回复:
看看这个对你有帮助吗?
C#对超大图片处理


这个对他不会有帮助,因为200MB的图像对于系统来说还能够承受, 我自己的经验是500MB是个瓶颈,原因是一般情况下 系统无法为 程序 分配更大的连续内存。

--------------------编程问答-------------------- 把你的程序编译成64位程序试试看,
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,