二进制图片oracle压缩,二进制打开图片,图片大小为30M jpg格式,内存不足

本人已经将图片转为二进制,存入oracle 数据,现在想在picturebox中打开,打开报内存不足,图片大小为30M jpg格式,

系统为32位,内存4G

存入方式

File.ReadAllBytes ;

打开方式

byte[] mByte = mDT.Rows[0][“PictureFile”] as byte[];

MemoryStream mMemoryS = new MemoryStream(mByte);

Bitmap mBitmap = new Bitmap(mMemoryS);这个为报错位置

本来想压缩图片大小

public static Bitmap ResizeBitmap(Bitmap ExBitmap,int width,int height)

{

Bitmap mBitmap = new Bitmap(width, height);

Graphics mGraphics = Graphics.FromImage(mBitmap);

mGraphics.InterpolationMode = InterpolationMode.HighQualityBicubic;

mGraphics.DrawImage(ExBitmap, new Rectangle(0, 0, width, height),

new Rectangle(0, 0, ExBitmap.Width, ExBitmap.Height), GraphicsUnit.Pixel);

mGraphics.Dispose();

return mBitmap;

}

但是现在压根就得不到 图片格式

解决方案

5

十有八九 是数据压根就没对

把你的mMemoryS 保存成文件看看是什么数据

例如保存到 c:\123.jpg 看看用系统自带的图片管理器能否打开

或 直接用用16进制编辑工具 打开看看数据能否是正常的jpg文件数据

10

你可以使用其它比较专业的工具去“压缩”。

但是你确定这是原因是没有压缩而造成的问题吗?

你没有给出图片的大小参数,给出了参数,才知道真实的东西。对于大图,从源头上就应该切成多个小图(例如1024×1024的),而不应该以大图为目标。

10

别说32M,就算是上 T 的图本人也见过。而上 T 的图其实就是一些(几千万幅) 256×256 尺寸的小图组成的。

15

别说32M    –>    别说30M

不过,30M并不算很大。你还是可以在原来的代码 mDT.Rows[0][“PictureFile”]  这里去研究一下,从数据库读取 BLOB 数据的方法不止这一种。可能是代码的问题。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明二进制打开图片,图片大小为30M jpg格式,内存不足!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值