bmp图片缩小问题,请高手进,谢谢! 我把1024*768的屏幕图像抓取到一个bitmap1中(非磁盘文件),然后我想把这个bitmap1的缩略图拷贝到bitmap2中,bitmap2的大小是160*120,请问我应该怎样实现? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 将一bmp图形缩小,图形可能变得不可辨认或是血肉模糊,怎么样才能避免这样呢,以下是我的心得:procedure ZoomBmp(imagen: TBitmap; dWidth, dHeight: Integer; var des: TBitmap);var ori: TBitmap; dispositivo_o, dispositivo_d: HDC; pepito: HBitmap;begin ori := Tbitmap.Create; des := TBItmap.Create; ori.handle := imagen.handle; des.width := dWidth; des.height := dHeight; dispositivo_o := CreateCompatibleDC(0); dispositivo_d := CreateCompatibleDC(0); SelectObject(dispositivo_o, ori.handle); pepito := SelectObject(dispositivo_d, des.handle); SetStretchBltMode(dispositivo_d, STRETCH_HALFTONE); StretchBlt(dispositivo_d, 0, 0, dWidth, dHeight, dispositivo_o, 0, 0, ori.width, ori.height, SRCCOPY); SelectObject(dispositivo_d, pepito); ori.Free; DeleteObject(pepito); DeleteDC(dispositivo_o); DeleteDC(dispositivo_d);end; 其实最重要的就是这句:SetStretchBltMode(dispositivo_d, STRETCH_HALFTONE); 我并不是要把bitmap2显示出来,而是要把它通过udp组件发送到服务器上!如果是这样的话应该怎么做? 为什么不转成JPG的,如果象你那样的缩小,画质损失很大 直接调用STRECHDRAW在压缩比较大时,失真很大,可以用线性插值法来压缩,失真会小很多 光驱放入空白光盘就不停地闪(找不到文件), 有内容的光盘就不会. 怎么解决? FastReport 3 请大哥帮忙~ 请问delphi实现这种表格功能(图)???????????????????????? 请问在哪儿可以查到关于软件公司的评论,以前有个hooday怎么连不上了? 如何当在主表里添加删除时从表要跟着变? 小问题 哪位有ehlib 2.6的源码(含dbgrideh.pas),200分相送 如何解决登录密码 今天下午不能交出来程序,我就走人了 delphi里有没有做*.hlp文件的东东? 如何获得网页上的验证码图片上的数字? 应该学vc还是delphi
怎么样才能避免这样呢,以下是我的心得:procedure ZoomBmp(imagen: TBitmap; dWidth, dHeight: Integer; var des: TBitmap);
var
ori: TBitmap;
dispositivo_o, dispositivo_d: HDC;
pepito: HBitmap;
begin
ori := Tbitmap.Create;
des := TBItmap.Create;
ori.handle := imagen.handle;
des.width := dWidth;
des.height := dHeight;
dispositivo_o := CreateCompatibleDC(0);
dispositivo_d := CreateCompatibleDC(0);
SelectObject(dispositivo_o, ori.handle);
pepito := SelectObject(dispositivo_d, des.handle);
SetStretchBltMode(dispositivo_d, STRETCH_HALFTONE);
StretchBlt(dispositivo_d, 0, 0, dWidth, dHeight, dispositivo_o, 0, 0, ori.width, ori.height, SRCCOPY);
SelectObject(dispositivo_d, pepito);
ori.Free;
DeleteObject(pepito);
DeleteDC(dispositivo_o);
DeleteDC(dispositivo_d);
end;
SetStretchBltMode(dispositivo_d, STRETCH_HALFTONE);