怎么调整bmp图片的尺寸?

TripleH 2009-04-03 03:56:56

var
vHdc : HDC;
vbitmap : TBitmap;
pt : TRect;
begin
vHDC := GetDC(0);
GetWindowRect(Form2.Handle,pt);
vbitmap := TBitmap.Create;
try
vbitmap.Width :=Form2.Width;
vbitmap.Height := Form2.Height;
BitBlt(vbitmap.Canvas.Handle,0,0,Form2.Width,Form2.Height,vHdc,pt.Left,pt.top,SRCCOPY);
cxImage1.Picture.bitmap:=vbitmap;
//放到image去显示
vbitmap.Assign(Image1.Picture.Bitmap);
Self.ImageList1.Add(vbitmap,vbitmap);
finally
ReleaseDC(0,vHdc);
FreeAndNil(vbitmap);
end;

小弟我用如上的代码抓取了一个Form2的图片(Form2在运行时大小可以调整),所以抓出来的图片有大有小,那么怎么将抓好的bmp统一将尺寸修改为128*128呢?就是看起来像一个缩略图一样。谢谢
...全文
821 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
TripleH 2009-04-08
  • 打赏
  • 举报
回复
to HeroicDragon 你的办法会造成只抓取128尺寸内的,而不是形成一个缩略图的。
ahjoe 2009-04-04
  • 打赏
  • 举报
回复
图像缩放。
HeroicDragon 2009-04-04
  • 打赏
  • 举报
回复
方法多了,
第一种:
BitBlt(vbitmap.Canvas.Handle,0,0,Form2.Width,Form2.Height,vHdc,pt.Left,pt.top,SRCCOPY);
改为
BitBlt(vbitmap.Canvas.Handle,0,0,128,128,vHdc,pt.Left,pt.top,SRCCOPY);


第二种:
Image1.Stretch:=True;
Image1.Width:=128;
Image1.Height:=128;


bdmh 2009-04-03
  • 打赏
  • 举报
回复
StretchBlt,再不行,你就用图像控件吧,把抓到的图读到控件中,控件大小固定,自适应控件大小,然后通过控件保存
bdmh 2009-04-03
  • 打赏
  • 举报
回复
StretchBlt,再不行,你就用图像控件吧,把抓到的图读到控件中,控件大小固定,自适应控件大小,然后通过控件保存
zxx_0405 2009-04-03
  • 打赏
  • 举报
回复
StretchBlt(vbitmap.Canvas.Handle, 0, 0, 128,
128, vHdc, 0, 0, Form2.Width,Form2.Height, SRCCOPY);


上边参数搞错了
你试一下
zxx_0405 2009-04-03
  • 打赏
  • 举报
回复
StretchBlt(目的图像句柄, 0, 0, 128,
128, vbitmap.Canvas.Handle, 0, 0, vbitmap.Width,
vbitmap.Height, SRCCOPY);


zxx_0405 2009-04-03
  • 打赏
  • 举报
回复
StretchBlt函数
TripleH 2009-04-03
  • 打赏
  • 举报
回复
搜过了的,没有找到合适的嘛
  • 打赏
  • 举报
回复
如果没有其他条件……用ACDSEE批量处理……嘿嘿。这个问题你应当搜索下,不能老是问同样的问题。

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi GAME,图形处理/多媒体
社区管理员
  • GAME,图形处理/多媒体社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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