C# 显示超大图片,很头疼,期待高手出方法

xxiju203 2011-01-14 12:14:46
是这样的,我需要设置Form的背景图片,图片很大,大概20多M这样吧 我想要在我的Form中以自动缩放的形式显示我的这个图片,
但是我的机器内存只有512M,如果我直接设置窗体的背景图片,系统会提示我内存不足,无法显示,然后窗体背景就全白了,中间一个红叉.我知道网上有很多图象缩放算法,但是基本上都是要先用Image对象加载之后再做处理,问题是我这可怜的512M内存连加载都不能,更不用说再去处理了,请问各位大哥,有什么好的解决办法没有?图片只要是能按比例全部显示在Form中就可以了

我的代码是这样
this.BackgroundImage = Image.FromFile("...");
这样开小图片没问题,开我说的那个大图片马上就死掉了~~
...全文
696 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
点康 2011-01-15
  • 打赏
  • 举报
回复
楼主为何不用PS成比例缩放呢?
效果和像素不会变的,缩放好之后在截图,
当然 之前的备份好,再设置背景图片,不是也行吗?

我正在使用《Csdn收音机》第一时间获取最新动态!
GxChenZhao 2011-01-15
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 xxiju203 的回复:]
我做这个东西是给客户使用的,他们使用什么样的图片我没办法控制呀
[/Quote]

如果图片只是背景的话,把图片转为JPG或者使用PS压缩一下,客户根本就看不出来。
xxiju203 2011-01-15
  • 打赏
  • 举报
回复
我做这个东西是给客户使用的,他们使用什么样的图片我没办法控制呀
xixihaha_2011_098 2011-01-14
  • 打赏
  • 举报
回复
程序里加载的图片尽量小一点,太大,影响运行。
pengxuan 2011-01-14
  • 打赏
  • 举报
回复
转成JPG的,再压缩一下
龍过鸡年 2011-01-14
  • 打赏
  • 举报
回复
先生成一个 "缩略图"
Bitmap b = new Bitmap(size);
size: Screen.PrimaryScreen.Bounds.X, creen.PrimaryScreen.Bounds.Y

Bitmap bg = new Bitmap(size);

using (Image img = Image.FromFile(fileName)
{
using(Graphics g = Graphics.FromImage(bg)
{
g.DrawImage(img, gb.GetBounds());
g.Save();
}
}

this.BackgroundImage = bg;
laj0600310219 2011-01-14
  • 打赏
  • 举报
回复
512M怎么会加载不了呢?你找个图片压缩算法处理一下看,我之前用过一个压缩算法,压缩效率蛮好的。。。
yyg_pl 2011-01-14
  • 打赏
  • 举报
回复
把图片从新存一下,存成JPG格式的看看, 有时候一从存图片就会变小.
比方说数码相机照出来的是4M的,一从存就变在不到1M的了.
再就是
wulumuqu 2011-01-14
  • 打赏
  • 举报
回复
512M对20M应当能用的,无非查查系统的设置或看看还有没有其它函数可用。至于为此一定要找出个算法以为意义有限,把精力用到更多的方面为好。
xiaoqiu1234 2011-01-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 caozhy 的回复:]
如果图片是固定的,在开发机上就剪裁出合适的图片。
[/Quote]
同意
threenewbee 2011-01-14
  • 打赏
  • 举报
回复
如果图片是固定的,在开发机上就剪裁出合适的图片。

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧