使用图片框处理图片。

将两个图片框添加到窗体。

将两个图片框的ScaleMode属性设置为3像素。

一般声明

--------------------------------


Const ubx = 1000
Const uby = 500
Dim pixels(1 To ubx, 1 To uby) As Long 
将图片从一个图片盒复制到另一个像素。

===========================================

添加以下代码

--------------------------------------


Private Sub CMDCOPY_Click()
Dim X As Integer, Y As Integer
For X = 1 To ubx
For Y = 1 To uby
pixels(X, Y) = Picture1.Point(X, Y)
Next Y
Next X 
For X = 1 To ubx
For Y = 1 To uby
Picture2.PSet (X, Y), pixels(X, Y)
Next Y
Next X
End Sub  
要将灰度图片从一个图片框复制到另一图片框。

===========================================

添加以下代码

--------------------------------------


Private Sub CMDGRAY_Click()
Dim X As Integer, Y As Integer
Dim R As Integer, G As Integer, B As Integer, A As Integer
For X = 1 To ubx
For Y = 1 To uby
pixels(X, Y) = Picture1.Point(X, Y)
Next Y
Next X 
For X = 1 To ubx
For Y = 1 To uby
R = pixels(X, Y) And &HFF
G = ((pixels(X, Y) And &HFF00) / &H100) Mod &H100
B = ((pixels(X, Y) And &HFF0000) / &H10000) Mod &H100
A = (R + G + B) / 3
pixels(X, Y) = RGB(A, A, A)
Next Y
Next X
For X = 1 To ubx
For Y = 1 To uby
Picture2.PSet (X, Y), pixels(X, Y)
Next Y
Next X 
End Sub 
将图片的压印副本从一个图片盒复制到另一个。

================================================== ====

添加以下代码

--------------------------------------


Private Sub CMDEMBOSS_Click()
Dim X As Integer, Y As Integer
Dim R As Integer, G As Integer, B As Integer, A As Integer  
For X = 1 To ubx
For Y = 1 To uby
pixels(X, Y) = Picture1.Point(X, Y)
Next Y
Next X 
For X = ubx To 2 Step -1
For Y = uby To 2 Step -1
R = ((pixels(X - 1, Y - 1) And &HFF) - (pixels(X, Y) And &HFF)) + 128
G = (((pixels(X - 1, Y - 1) And &HFF00) / &H100) Mod &H100 - ((pixels(X, Y) And &HFF00) / &H100) Mod &H100) + 128
B = (((pixels(X - 1, Y - 1) And &HFF0000) / &H10000) Mod &H100 - ((pixels(X, Y) And &HFF0000) / &H10000) Mod &H100) + 128 
A = Abs((R + G + B) / 3) 
pixels(X, Y) = RGB(A, A, A) 
Next Y
Next X 
For X = 1 To ubx
For Y = 1 To uby
Picture2.PSet (X - 2, Y - 2), pixels(X, Y)
Next Y
Next X 
End Sub 
将图片的雕刻副本从一个图片盒复制到另一个图片盒。

================================================== ====

添加以下代码

--------------------------------------


Private Sub CMDENGRAVE_Click()
Dim X As Integer, Y As Integer
Dim R As Integer, G As Integer, B As Integer, A As Integer
For X = 1 To ubx
For Y = 1 To uby
pixels(X, Y) = Picture1.Point(X, Y)
Next Y
Next X 
For X = 2 To ubx Step -1
For Y = 2 To uby Step -1
R = ((pixels(X + 1, Y + 1) And &HFF) - (pixels(X, Y) And &HFF)) + 128
G = (((pixels(X + 1, Y + 1) And &HFF00) / &H100) Mod &H100 - ((pixels(X, Y) And &HFF00) / &H100) Mod &H100) + 128
B = (((pixels(X + 1, Y + 1) And &HFF0000) / &H10000) Mod &H100 - ((pixels(X, Y) And &HFF0000) / &H10000) Mod &H100) + 128 
A = (R + G + B) / 3
pixels(X, Y) = RGB(A, A, A)
Next Y
Next X
For X = 1 To ubx
For Y = 1 To uby
Picture2.PSet (X, Y), pixels(X, Y)
Next Y
Next X
End Sub  
将图片的模糊副本从一个图片盒复制到另一个图片盒。

================================================== ==

添加以下代码

--------------------------------------


Private Sub CMDBLUR_Click()
Dim X As Integer, Y As Integer
Dim R As Integer, G As Integer, B As Integer, A As Integer
For X = 1 To ubx
For Y = 1 To uby
pixels(X, Y) = Picture1.Point(X, Y)
Next Y
Next X 
For X = 1 To ubx - 1
For Y = 1 To uby
R = Abs((pixels(X + 1, Y) And &HFF) + (pixels(X, Y) And &HFF)) / 2
G = Abs(((pixels(X + 1, Y) And &HFF00) / &H100) Mod &H100 + ((pixels(X, Y) And &HFF00) / &H100) Mod &H100) / 2
B = Abs(((pixels(X + 1, Y) And &HFF0000) / &H10000) Mod &H100 + ((pixels(X, Y) And &HFF0000) / &H10000) Mod &H100) / 2 
pixels(X, Y) = RGB(R, G, B)
Next Y
Next X
For X = 1 To ubx
For Y = 1 To uby
Picture2.PSet (X, Y), pixels(X, Y)
Next Y
Next X 
End Sub
将一个图片盒中的图像扫描(模糊)到另一个。

=============================================

添加以下代码

--------------------------------------


Private Sub CMDSWEEP_Click()
Dim X As Integer, Y As Integer
Dim R As Integer, G As Integer, B As Integer, A As Integer
For X = 1 To ubx
For Y = 1 To uby
pixels(X, Y) = Picture1.Point(X, Y)
Next Y
Next X 
For X = ubx - 1 To 1 Step -1
For Y = uby - 1 To 1 Step -1
R = Abs((pixels(X + 1, Y + 1) And &HFF) + (pixels(X, Y) And &HFF)) / 2
G = Abs(((pixels(X + 1, Y + 1) And &HFF00) / &H100) Mod &H100 + ((pixels(X, Y) And &HFF00) / &H100) Mod &H100) / 2
B = Abs(((pixels(X + 1, Y + 1) And &HFF0000) / &H10000) Mod &H100 + ((pixels(X, Y) And &HFF0000) / &H10000) Mod &H100) / 2 
pixels(X, Y) = RGB(R, G, B)
Next Y
Next X
For X = 1 To ubx
For Y = 1 To uby
Picture2.PSet (X, Y), pixels(X, Y)
Next Y
Next X 
End Sub 
从背面将图片从一个图片盒复制到另一个。

================================================== =

添加以下代码

--------------------------------------


Private Sub CMDREVERSE_Click()
Dim X As Integer, Y As Integer
For X = 1 To ubx
For Y = 1 To uby
pixels(X, Y) = Picture1.Point(X, Y)
Next Y
Next X 
For X = ubx To 1 Step -1
For Y = uby To 1 Step -1
Picture2.PSet (X, Y), pixels(X, Y)
Next Y
Next X
End Sub 
将图像从一个图片框切换到另一图片框。

===================================

添加以下代码

--------------------------------------


Private Sub CMDFLIP_Click()
Picture2.PaintPicture Picture1.Picture, Picture1.ScaleWidth, 0, -1 * Picture1.ScaleWidth, Picture1.ScaleHeight
End Sub 
从另一个图片盒中的图像中删除颜色。

================================================== =

在窗体中添加一个文本框,以输入要删除颜色的值。

添加以下代码

--------------------------------------


Private Sub CMDLIGHT_Click()
Dim X As Integer, Y As Integer, addon As Integer
addon = Val(Text1.Text)
Dim R As Integer, G As Integer, B As Integer
For X = 1 To ubx
For Y = 1 To uby
pixels(X, Y) = Picture1.Point(X, Y)
Next Y
Next X 
For X = 1 To ubx
For Y = 1 To uby
R = pixels(X, Y) And &HFF
G = ((pixels(X, Y) And &HFF00) / &H100) Mod &H100
B = ((pixels(X, Y) And &HFF0000) / &H10000) Mod &H100 
R = R + addon
If R > 255 Then R = 255
G = G + addon
If G > 255 Then G = 255
B = B + addon
If B > 255 Then B = 255 
pixels(X, Y) = RGB(R, G, B)
Next Y
Next X 
For X = 1 To ubx
For Y = 1 To uby
Picture2.PSet (X, Y), pixels(X, Y)
Next Y
Next X
End Sub 

From: https://bytes.com/topic/visual-basic/insights/729104-handling-picture-using-picture-box

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值