Сохранение картинки без контейнера - 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

ИИ для рефератов и докладов


  • Экспорт Word по ГОСТу
  • Минимум 80% уникальности текста
  • Поиск релевантных источников в интернете
  • Готовый документ за 2 минуты

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

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