Search Tools Links Login

Very fast Image Processing


This code shows how to realize fast Image Processing. I've made a small animation with it.

Original Author: Stephan Kirchmaier

Inputs

Picture1 = PictureBox
Timer1 = Timer

API Declarations

Private Type BITMAP
bmType As Long
bmWidth As Long
bmHeight As Long
bmWidthBytes As Long
bmPlanes As Integer
bmBitsPixel As Integer
bmBits As Long
End Type
Private Declare Function GetObject Lib "gdi32" Alias "GetObjectA" (ByVal hObject As Long, ByVal nCount As Long, lpObject As Any) As Long
Private Declare Function GetBitmapBits Lib "gdi32" (ByVal hBitmap As Long, ByVal dwCount As Long, lpBits As Any) As Long
Private Declare Function SetBitmapBits Lib "gdi32" (ByVal hBitmap As Long, ByVal dwCount As Long, lpBits As Any) As Long
Dim PicBits() As Byte, PicInfo As BITMAP, Cnt As Long

Code

Private Type BITMAP
  bmType As Long
  bmWidth As Long
  bmHeight As Long
  bmWidthBytes As Long
  bmPlanes As Integer
  bmBitsPixel As Integer
  bmBits As Long
End Type
Private Declare Function GetObject Lib "gdi32" Alias "GetObjectA" (ByVal hObject As Long, ByVal nCount As Long, lpObject As Any) As Long
Private Declare Function GetBitmapBits Lib "gdi32" (ByVal hBitmap As Long, ByVal dwCount As Long, lpBits As Any) As Long
Private Declare Function SetBitmapBits Lib "gdi32" (ByVal hBitmap As Long, ByVal dwCount As Long, lpBits As Any) As Long
Dim PicBits() As Byte, PicInfo As BITMAP, Cnt As Long
Private Sub CF()
  Dim k As Long
  
  On Error Resume Next
  Picture1.Picture = Picture1.Image
  GetObject Picture1.Image, Len(PicInfo), PicInfo
  ReDim PicBits(1 To PicInfo.bmWidth * PicInfo.bmHeight * 3) As Byte
  GetBitmapBits Picture1.Image, UBound(PicBits), PicBits(1)
  For Cnt = 2 To UBound(PicBits) + 1
    k = PicBits(Cnt - 1) + PicBits(Cnt + 1)
    k = k 2
    PicBits(Cnt) = k
  Next Cnt
  SetBitmapBits Picture1.Image, UBound(PicBits), PicBits(1)
  Picture1.Refresh
End Sub
Private Sub Timer1_Timer()
  Call CF
End Sub

About this post

Posted: 2002-06-01
By: ArchiveBot
Viewed: 94 times

Categories

Visual Basic 6

Attachments

No attachments for this post


Loading Comments ...

Comments

No comments have been added for this post.

You must be logged in to make a comment.