Сохранение картинки без контейнера - VB

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

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

Привет всем! Ну вытащить ассоциативный icon я могу. А как его сохранить в файл, но так, чтобы обойтись без контейнеров типа PictuteBox? Сохранить из памяти. Спасибо.

Решение задачи: «Сохранение картинки без контейнера»

textual
Листинг программы
Dim rezPicture As IPictureDisp
Dim fileName As String
Dim lhDC As Long, objHDC As Long, lhBMP As Long
Dim lWidth As Long, lHeight As Long
'
fileName = 'C:\Test.bmp'
objDHC = Me.hDC     '    << к примеру
' ...
' тут кладёшь картинку в буфер обмена, например - так:
'
' создаём временный 'виртуальный' контекст:
lhDC = CreateCompatibleDC(objHDC)
' (objHDC - граф. контекст исходного, т.е. копируемого объекта)
'
lHeight = 600  ' << к примеру
lWidth = 800   ' << к примеру
'
lhBMP = CreateCompatibleBitmap(objHDC, lWidth, lHeight)
'
BitBlt lhDC, 0, 0, lWidth / 2, lHeight / 2, objHDC, 0, 0, vbSrcCopy
' (пол-картинки с исходного объекта скопированы в виртуальный контекст lhDC)
'
' кладём в буфер обмена:
OpenClipboard 0
EmptyClipboard
SetClipboardData vbCFBitmap, lhBMP
CloseClipboard
' удаляем временный виртуальный контекст - он больше не нужен:
DeleteObject lhDC
' ...
Set rezPicture = Clipboard.GetData(vbCFBitmap)
SavePicture rezPicture, fileName

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


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

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

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