把图片从库里提取到image中,打印image,不管放大还是缩小都存在图象失真的情况。后来我把图片提取以后先存为BMP文件,再加载,打印效果有所提高,但还是达不到满意的效果。

解决方案 »

  1.   

    Private Declare Function GetObject Lib "gdi32" Alias "GetObjectA" (ByVal hObject As Long, ByVal nCount As Long, lpObject As Any) As LongPrivate Declare Function GetBitmapBits Lib "gdi32" (ByVal hBitmap As Long, ByVal dwCount As Long, lpBits As Any) As Long
    Private Declare Function SetBitmapBits Lib "gdi32" (ByVal hBitmap As Long, ByVal dwCount As Long, lpBits As Any) As Long
    Private PicBets() As Byte
    '枚举简单图形对象
    Private Type BITMAP
        bmType As Long
        bmWidth As Long
        bmHeight As Long
        bmWidthBytes As Long
        bmPlanes As Integer
        bmBitsPixel As Integer
        bmBits As Long
    End TypePrivate Sub Command1_Click()
    Dim bmpjpg As BITMAP
    Me.CommonDialog1.ShowOpen
    Dim p As String
    p = Me.CommonDialog1.FileName
    Me.Picture1.Picture = LoadPicture(p)'返回二进制图象信息
    GetObject Picture1.Image, Len(bmpjpg), bmpjpg
    ReDim PicBets(bmpjpg.bmHeight * bmpjpg.bmWidth * 3)
    GetBitmapBits Me.Picture1.Image, UBound(PicBets), PicBets(1)
    SetBitmapBits Me.Picture2.Image, UBound(PicBets), PicBets(1)Me.Picture2.RefreshEnd SubPrivate Sub Command2_Click()
    Printer.Print "以下是图形打印的样张"
    'Printer.PaintPicture PicBets, 1000, 2000
    'StartDoc Printer.Image, UBound(PicBets), PicBets(1)
    Printer.EndDoc