Кодировка и разкодировка картинки - VB

Узнай цену своей работы

Формулировка задачи:

Нахожусь в поиске информации о том, как исходную картинку , скажем "new.jpg" перекодировать в файл тхт ,состоящий из 1 и 0 , а впоследствии другой программой раскодировать его и вывести на Image1.Image.Зарание признателен.

Решение задачи: «Кодировка и разкодировка картинки»

textual
Листинг программы
Option Explicit
 
Private Declare Function GetDIBits Lib "gdi32" (ByVal aHDC As Long, ByVal hBitmap As Long, ByVal nStartScan As Long, ByVal nNumScans As Long, lpBits As Any, lpBI As Any, ByVal wUsage As Long) As Long
Private Declare Function SetDIBits Lib "gdi32" (ByVal hdc As Long, ByVal hBitmap As Long, ByVal nStartScan As Long, ByVal nNumScans As Long, lpBits As Any, lpBI As Any, ByVal wUsage As Long) As Long
 
Private Sub Form_Load()
    Dim pix()       As Byte
    Dim bi(11)      As Long
    Dim pic         As IPicture
    Dim s           As Long
    Dim Mask(7)     As Integer
    Dim x           As Long
    Dim y           As Long
    
    Set pic = Image1.Picture
 
    bi(0) = 40
    GetDIBits Me.hdc, pic.Handle, 0, ScaleY(pic.Height, vbHimetric, vbPixels), ByVal 0&, bi(0), 0
    bi(4) = 0: bi(3) = &H10001
    
    s = bi(1) \ 8: If s And &H3 Then s = (s And &HFFFFFFFC) + 4
    ReDim pix(s - 1, bi(2) - 1)
 
    GetDIBits Me.hdc, pic.Handle, 0, bi(2), pix(0, 0), bi(0), 0
    
    ' Создаем шахматную маску
    Mask(0) = &HF0: Mask(1) = &HF0: Mask(2) = &HF0: Mask(3) = &HF0
    Mask(4) = &HF: Mask(5) = &HF: Mask(6) = &HF: Mask(7) = &HF
    
    For y = bi(2) - 1 To 0 Step -1: For x = 0 To s - 1
        pix(x, y) = pix(x, y) And Mask(y And &H7)
    Next: Next
    
    SetDIBits Me.hdc, pic.Handle, 0, bi(2), pix(0, 0), bi(0), 0
    
End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4 из 5
Похожие ответы