VB图形象素转换(300分)

  • 主题发起人 主题发起人 czzz
  • 开始时间 开始时间
C

czzz

Unregistered / Unconfirmed
GUEST, unregistred user!
问题1:有没有象大富翁这样专门讨论VB的网站,请告诉我网址。(100分)
问题2:在VB中创建一窗体,在窗体中加入了两个PcitureBox控件,分别为Picture1
和Picture2。Picture1中的图片为磁盘上的任意一幅图形,Picture1的Autosize
设置为True,请问如何通过代码将图形转换到Pciture2中(300*360象素)(200分)
 
1.http://www.csdn.net;
2.BitBlt函数吧。不会是要转换格式吧。
 
给你写个Delphi的例子 :
var
Bmp1,Bmp2 :TBitmap;
begin
Bmp1 :=TBitmap.Create;
Bmp1.Assign(Image1.Picture.Bitmap);
Bmp2 :=TBitmap.Create;
Bmp2.PixelFormat :=Bmp1.PixelFormat;
Bmp2.Width :=300;
Bmp2.Height :=360;
BitBlt(Bmp2.Canvas.Handle,0,0,Bmp2.Width,Bmp2.Height,Bmp1.Canvas.Handle,0,0,SRCCOPY);
Image2.Picture.Bitmap.Assign(Bmp2);
Bmp1.Free;
Bmp2.Free;
end;
 
没有人知道了吗?
 
是放大缩小吗?
BitBlt(Picture2.Handle,0,0,Picture2.Width,Picture2.Height,Picture1.Handle,0,0,SRCCOPY);
也可以读出picture1的象素,用缩放的算法重新计算象素值再写到picture2
 
将图形转换到Pciture2中
~~~~
什么意思?
 
这段代码可以,不过要等几秒钟:你自己看吧。
Dim i, j As Integer
Picture2.Scale (0, 0)-(300, 360) '源图
Picture1.Scale (0, 0)-(300, 360) '目标图
For i = 0 To 299
For j = 0 To 359
Picture1.PSet (i, j), Picture2.Point(i, j)
Next j
Next i
 
多人接受答案了。
 

Similar threads

D
回复
0
查看
825
DelphiTeacher的专栏
D
D
回复
0
查看
831
DelphiTeacher的专栏
D
D
回复
0
查看
664
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部