当前位置:编程学习 > VB >>

图象线性放大的问题,谁能帮我修改下 显示的时间加快也好

Dim pic(5000, 5000, 3) As Byte
Dim pix As Byte
Dim pic1(9000, 9000, 3) As Byte
Dim w As Long
Dim h As Long


Private Sub Command1_Click() '读图象
CommonDialog1.Filter = "pictures(*.bmp)|*.bmp"

CommonDialog1.ShowOpen

Open CommonDialog1.FileName For Binary As #1
   Get #1, 19, w:   Get #1, 23, h:   Seek #1, 55
    For j = h - 1 To 0 Step -1
        For i = 0 To w - 1
           For k = 2 To 0 Step -1
              Get #1, , pic(i, j, k)
           Next k
        Next i
       If w * 3 Mod 4 <> 0 Then
         For k = 1 To 4 - ((w * 3) Mod 4)
           Get #1, , pix
         Next k
       End If
   Next j
   Close #1
End Sub


Private Sub Command2_Click() '显示图象

    For j = 0 To h - 1
    For i = 0 To w - 1
       Picture1.PSet (i, j), RGB(pic(i, j, 0), pic(i, j, 1), pic(i, j, 2))
    Next i
Next j
End Sub

Private Sub Command3_Click() '放大图象,n是放大倍数
Picture1.Cls
n = Val(Text1.Text)
 For i = 0 To h * n - 1 Step n
    For j = 0 To w * n - 1 Step n
        For l = 0 To n - 1
         
           pic1(j + l, i / n, 0) = (pic(j / n, i / n, 0) * l / n + pic(j / n + 1, i / n, 0) * (1 - l / n))
           pic1(j + l, i / n, 1) = (pic(j / n, i / n, 1) * l / n + pic(j / n + 1, i / n, 1) * (1 - l / n))
           pic1(j + l, i / n, 2) = (pic(j / n, i / n, 2) * l / n + pic(j / n + 1, i / n, 2) * (1 - l / n))
         
          Picture1.PSet (j + l, i), RGB(pic(j / n, i / n, 0) * l / n + pic(j / n + 1, i / n, 0) * (1 - l / n), pic(j / n, i / n, 1) * l / n + pic(j / n + 1, i / n, 1) * (1 - l / n), pic(j / n, i / n, 2) * l / n + pic(j / n + 1, i / n, 2) * (1 - l / n))
        Next l
          
    Next j
 Next i
 
For i = 0 To w * n - 1
    For j = 0 To h * n - 1 Step n
        For l = 0 To n - 1
            
            rr = pic1(i, j / n, 0) * l / n + pic1(i, j / n + 1, 0) * (1 - l / n)
            gg = pic1(i, j / n, 1) * l / n + pic1(i, j / n + 1, 1) * (1 - l / n)
            bb = pic1(i, j / n, 2) * l / n + pic1(i, j / n + 1, 2) * (1 - l / n)
            Picture1.PSet (i, j + l), RGB(rr, gg, bb)
        Next l
    Next j
 Next i

End Sub --------------------编程问答--------------------
Dim pic As IPictureDisp
Set pic = LoadPicture("C:\a.bmp")
Picture1.PaintPicture pic, 0, 0, pic.Width * n, pic.Height * n
--------------------编程问答-------------------- 把这段加进去吗 不是很懂啊
--------------------编程问答-------------------- 按照上面的方法直接载入图片,放大n倍绘图,其它统统不要。 --------------------编程问答-------------------- 是把你那段替换读图象吗? 麻烦你帮我直接复制到下面来好吗 谢谢了 ~ ~ --------------------编程问答-------------------- 我用这方法Set pic = LoadPicture("C:\a.bmp")
载入图片 但是在PICTUREBOX中 没效果   能不能帮我完全修改下  完整的   拜托啊   谢谢拉
--------------------编程问答-------------------- --------------------编程问答-------------------- http://blog.yesky.com/Blog/wallescai
慢慢看,对楼主有帮助。
补充:VB ,  基础类
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,