永发信息网

C# image转换byte后,再转换回image保存到*.bmp文件深度被改变了

答案:4  悬赏:0  手机版
解决时间 2021-04-13 04:19
C# image转换byte后,再转换回image保存到*.bmp文件深度被改变了
最佳答案
我用你的代码试了一下 好使.
byte[] photo = null;
            MemoryStream ms = new MemoryStream();
            Bitmap bmp = new Bitmap(pb.Image);
            bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
            photo = new byte[ms.Length];
            ms.Position = 0;
            ms.Read(photo, 0, Convert.ToInt32(ms.Length));
            bmp.Dispose();
            MemoryStream ms1 = new MemoryStream(photo); 
            Image img = Image.FromStream(ms1);
            img.Save(@"C:UserssamsungDesktop
ew1.bmp");原BMP   1.bmp 48*30 4.27KB
新BMP    new1.bmp  48*30  5.67KB
 
参考
http://blog.csdn.net/azkabannull/article/details/7770157
追问网址里面的方法不行的,转出时伪8位深度,真实深度还是24位的。只是处理了灰度而已。
全部回答
是不是对图片做修改了追问
保存图片的时候用了这个方法,转换为byte再扔进数据库的
追答using(var ms= new MemoryStream()){
pb.Image.Save(ms,pb.Image.RawFormat);
return ms.ToArray();
}
设置一下Image的PixelFormat属性,将其值设置为Format8bppIndexed追问这个属性是只读的。。。如果是new出来再贴一个新图上去就会报这个错误
无法从带有索引像素格式的图像创建 Graphics 对象。
Image 类有个 PixelFormat 属性可以指定位深度,如果不指定,默认就是 32 位的,应该设置为 System.Drawing.Imaging.PixelFormat.Format8bppIndexed 值。

但这个属性是只读的,只能在实例化时指定。

建议先实例化一个 Bitmap(Bitmap 类是继承自 Image 类的),有一种构造方法是 Bitmap(int, int System.Drawing.Imaging.PixelFormat)。然后将你的图片先绘制到新的 Bitmap 对象上,再保存。

不过据说 Image.Save() 方法有个 Bug,具体分析和解决方案参考:http://bbs.csdn.net/topics/330223763追问
但是从旧图贴新图的方法会产生这个错误,怎么解决呢?
无法从带有索引像素格式的图像创建 Graphics 对象。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
支黛茜漂亮还是陈婷漂亮?
如果上帝只给你一天时间了 你会做些什么
华汉到底是个什么人?他怎么跟谁都沾一点关系
广西贵港市广播电视大学在什么地方啊,我要过
.Our boss suggested we clerks good sales
上海城隍庙道观人生赠言注释
怎样查看家园聊天记录
国外有哪些像玛莉莲曼森乐团那样的乐队
迟来的爱有哪些诗词,形容交流的诗句
现在四川有地方下雪吗?
沙罗曼蛇手机版在哪里下载啊?
主板报警声 怎么通过声卡输出
农药销售安全组织机构文件范本
吁啍奔阱怎么去啊,有知道地址的么
单选题在用Zn、Cu片和CuSO4溶液组成的原电池
推荐资讯
要敲门声或按门铃的声音下载?
电视剧黑玫瑰的教官扮演者是谁
请问用西班牙语怎么说你太帅了?有发音就行~有
QQ游戏人生。不是这个问题也不可以吧!点亮荣
丝路英雄的绿砖CDkey!
好人和坏人有什么区别?
介绍一下有什么好的祛疤产品
腾讯游戏平台中lol的三d视角怎么打不开?
二手诺基亚5300最低卖多少钱
处理器主频2800MHz (外频200MHz X 倍频14.0)
怎么向腾迅提建议?
谁能帮我写一首现代诗〈给女朋友的〉
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?