Кодировка и разкодировка картинки - 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д