阅读:1350回复:18
300分求位图缩小显示的方法,缩小到原来的1/4
在vc++6.0下如何将640*480的bmp位图(8位灰度图像)缩小到原来的1/4显示?即320*240
图像可以有损失,但不能损失太大,我用LoadImage()指定显示大小为320*240后图像失真很严重,根本没法用! 兄弟们救救急,越简单越好。 |
|
沙发#
发布于:2004-04-06 11:35
如果是固定的图,干脆先用 PhotoShop 转换好。
不然,可能得自己写转换算法了。 最简单就是把原图每 2x2 点加权得到一个新点。 |
|
|
板凳#
发布于:2004-04-06 13:49
唉,要是能用photoshop就好了,现在是板子上实时采集过来的图像,传到电脑上后先存储为临时文件,然后再从文件中加载显示,这个过程是连续的,不可能有机会让用工具转换的
因此要用算法把图像缩小后显示。 我用vc的loadimage倒是能指定显示的大小,可是对于彩色图像效果还可以,对于8位256色的灰度图像失真很厉害。 |
|
地板#
发布于:2004-04-06 15:48
能不能在用别的算法平滑一下
|
|
地下室#
发布于:2004-04-06 16:21
呵呵,我不是做图像的,所以对这个了解甚少,如果能有现成的东西最好,因为现在活比较紧,没时间仔细研究。
这是很郁闷的事情 :( |
|
5楼#
发布于:2004-04-06 16:25
用StretchBlt()
|
|
|
6楼#
发布于:2004-04-06 16:27
调用WinAPI DrawDib函数族中的绘图函数,这些函数缩放图象的速度快,而且不失真。不过要求有原图的象素数据,而且该数据还必须是倒向图。如果你可以得到图象的象素数据,也可以自己编写一段缩放代码,然后直接显示。
|
|
|
7楼#
发布于:2004-04-06 16:39
我得到的就是图像的原始数据,现在就是不知道如何编一段缩放的代码,还望楼上的老兄指点一二,不胜感激!
|
|
8楼#
发布于:2004-04-06 16:59
http://www.crazy-bit.com/articles/effectshow.htm
|
|
|
9楼#
发布于:2004-04-06 17:00
任兄
用stretchblt,用法查msdn :D |
|
|
10楼#
发布于:2004-04-06 17:01
看StretchBlt()部分
|
|
|
11楼#
发布于:2004-04-06 17:08
记得在stretchblt之前,调用SetStretchBltMode( COLORONCOLOR)
:D效果好 |
|
|
12楼#
发布于:2004-04-06 17:29
好,我先试试,搞定了放分! :D
多谢诸位! |
|
13楼#
发布于:2004-04-07 10:33
kilroy_guo
我发邮件给你了,你看一下,多谢。 |
|
14楼#
发布于:2004-04-07 11:36
回了,你试一下 :D
|
|
|
15楼#
发布于:2004-04-07 12:42
我又回了一封
还不大行 你在帮忙看看。 |
|
16楼#
发布于:2004-04-07 13:38
自己写个算法了
|
|
|
17楼#
发布于:2004-04-07 13:50
可以了。签收!
密码:true :D |
|
|
18楼#
发布于:2004-04-07 14:25
呵呵,搞定,多谢多谢
放分了! :D |
|