想把一幅图片用绘图的方法在image上显示出来,请大虾赐教!!

yopeng 2002-11-15 11:18:41
如题!!
我想放大显示一幅图片!!
最好给出具体的源代码!!!
...全文
30 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
amartapple 2003-01-02
  • 打赏
  • 举报
回复
当然要用插值算法了
看看《数字图像处理》这本书吧
Maxdell 2002-11-27
  • 打赏
  • 举报
回复
如何才能把JPEG文件显示在IMAGE中?
stephenhuyuanzhang 2002-11-26
  • 打赏
  • 举报
回复
上面两段程序会有明显的实真,我想怎样解决失真才是要重点讨论的问题。
weibz0525 2002-11-24
  • 打赏
  • 举报
回复
同意楼上,简单的放大确实很容易,不过失真很严重,缩小就更别提了
chen_saint 2002-11-24
  • 打赏
  • 举报
回复
要真正的放大图象还是需要图象插值,简单的将长和宽放大不是办法
zdcnow 2002-11-15
  • 打赏
  • 举报
回复
使用copyrect就可以放大或者缩小显示图片。
如果需要自己重绘,参考Kingron的猛料吧。
放大两倍例子:

procedure TForm1.Button1Click(Sender: TObject);
var
rect1,rect2:trect;
bm:tbitmap;
begin
bm:=tbitmap.Create;
openpicturedialog1.Execute;
bm.LoadFromFile(openpicturedialog1.filename);
with rect1 do
begin
left:=0;
top:=0;
right:=bm.width;
bottom:=bm.height;
end;
with rect2 do
begin
left:=0;
top:=0;
right:=bm.width*2;//放大倍数为2
bottom:=bm.height*2;//放大倍数为2
end;

canvas.copyrect(rect2,bm.canvas,rect1);
bm.Free;
end;
zfmich 2002-11-15
  • 打赏
  • 举报
回复
帮助里的,看看吧。

procedure TForm1.Button1Click(Sender: TObject);

var
Bitmap : TBitMap;
begin
Bitmap := TBitmap.Create;
try
with Bitmap do begin
LoadFromFile('C:\Program Files\Common Files\Borland Shared\Images\Splash\256color\factory.bmp');
Transparent := True;
TransParentColor := BitMap.canvas.pixels[50,50];
Form1.Canvas.Draw(0,0,BitMap);
TransparentMode := tmAuto;
Form1.Canvas.Draw(50,50,BitMap);
end;
finally
Bitmap.Free;

end;
end;
yopeng 2002-11-15
  • 打赏
  • 举报
回复
楼上的,麻烦也要学习啊
hfycl 2002-11-15
  • 打赏
  • 举报
回复
是想用canvas自己画是吧,
挺麻烦的
blueshu 2002-11-15
  • 打赏
  • 举报
回复
up有分!
wisenowa 2002-11-15
  • 打赏
  • 举报
回复
StretchBlt
速度快,缩放自如
zdcnow 2002-11-15
  • 打赏
  • 举报
回复
to mikko11(新手) :
不大明白你所说的,中间是指那里的中间?
mikko11 2002-11-15
  • 打赏
  • 举报
回复
to zdcnow(磁效应)
我想问一下,如果我想让放大的图像始终处于中间,应该怎么做。
xzhifei 2002-11-15
  • 打赏
  • 举报
回复
学习

1,183

社区成员

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

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