Прозрачность картинок при печати: прозрачные области заливаются белым цветом - VB

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

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

Есть 2 gif-картинки, обе с прозрачными областями. Необходимо распечатать их на бумаге с наложением, чтобы через прозрачные области верхней просматривалась нижняя. С помощью Printer.PaintPicture прозрачные области закрашиваются белым и картинки становятся непрозрачными. Есть ли способы это обойти? Спасибо.

Решение задачи: «Прозрачность картинок при печати: прозрачные области заливаются белым цветом»

textual
Листинг программы
Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
Private Sub PrintImage(p As IPictureDisp, Optional ByVal x, Optional ByVal y, Optional ByVal resize)
    If IsMissing(x) Then x = Printer.CurrentX
    If IsMissing(y) Then y = Printer.CurrentY
    If IsMissing(resize) Then resize = 1
    Printer.PaintPicture p, x, y, p.Width * resize, p.Height * resize
End Sub
 
Private Sub Command1_Click()
Picture2.BackColor = vbWhite
Call BitBlt(Picture1.hdc, 1, 1, Picture2.ScaleWidth, Picture2.ScaleHeight, Picture2.hdc, 0, 0, vbSrcAnd) '
PrintImage Picture1.Picture
End Sub

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


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

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

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