需要在图片上叠加一下信息,还要能控制叠加的位置。
但是不知道怎么搞~
望达人指教!

解决方案 »

  1.   

    在图片框上用picture1.print "添加的文字"  添加文字,或用picture1.paintpicture添加图片。用GDI+或其它方式保存图片框中的图像为JPG格式。
      

  2.   

    picture1.currentX=12  
    picture1.currentY=20
    picture1.print "添加的文字"
      

  3.   

    image属性好似可以~
    谢谢了
      

  4.   

    SavePicture Image, "TEST.BMP"   ' 是将将图片保存为位图文件,想要转换为JPG还需要别的东西,你可以看看下面的控件
    http://www.codeair.com/picocx/picocx.html 
      

  5.   

    我在网上找到的,忘记是在哪里了~~!''**************************
    Private Declare Function GdiplusStartup Lib "gdiplus" (token As Long, inputbuf As GdiplusStartupInput, Optional ByVal outputbuf As Long = 0) As Long
    Private Declare Function GdiplusShutdown Lib "gdiplus" (ByVal token As Long) As Long
    Private Declare Function GdipCreateBitmapFromHBITMAP Lib "gdiplus" (ByVal hbm As Long, ByVal hpal As Long, bitmap As Long) As Long
    Private Declare Function GdipDisposeImage Lib "gdiplus" (ByVal image As Long) As Long
    Private Declare Function GdipSaveImageToFile Lib "gdiplus" (ByVal image As Long, ByVal FileName As Long, clsidEncoder As GUID, encoderParams As Any) As Long
    Private Declare Function CLSIDFromString Lib "ole32" (ByVal Str As Long, id As GUID) As Long
    Private Declare Function CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Dest As Any, Src As Any, ByVal cb As Long) As Long
    Private Type GUID
        Data1 As Long
        Data2 As Integer
        Data3 As Integer
        Data4(0 To 7) As Byte
    End TypePrivate Type GdiplusStartupInput
        GdiplusVersion As Long
        DebugEventCallback As Long
        SuppressBackgroundThread As Long
        SuppressExternalCodecs As Long
    End TypePrivate Type EncoderParameter
        GUID As GUID
        NumberOfValues As Long
        type As Long
        Value As Long
    End TypePrivate Type EncoderParameters
        count As Long
        Parameter As EncoderParameter
    End Type
    '*************************************************************************
    '**    函 数 名 :    SavePic
    '**    输    入 :    pic(StdPicture)        -   图象句柄
    '**             :    FileName(String)       -   保存路径
    '**             :    Quality(Byte)          -   JPG图象质量
    '**             :    TIFF_ColorDepth(Long)  -   TTF格式的颜色深度
    '**             :    TIFF_Compression(Long) -   TTF格式的压缩比
    '**    输    出 :    无
    '**    功能描述 :    把图象保存为JPG、TIFF、PNG、GIF、BMP格式
    '*************************************************************************Public Sub SavePic(ByVal pict As StdPicture, ByVal FileName As String, PicType As String, _
                        Optional ByVal Quality As Byte = 80, _
                        Optional ByVal TIFF_ColorDepth As Long = 24, _
                        Optional ByVal TIFF_Compression As Long = 6)
       Screen.MousePointer = vbHourglass
       Dim tSI As GdiplusStartupInput
       Dim lRes As Long
       Dim lGDIP As Long
       Dim lBitmap As Long
       Dim aEncParams() As Byte
       On Error GoTo ErrHandle:
       tSI.GdiplusVersion = 1   ' 初始化 GDI+
       lRes = GdiplusStartup(lGDIP, tSI)
       If lRes = 0 Then     ' 从句柄创建 GDI+ 图像
          lRes = GdipCreateBitmapFromHBITMAP(pict.handle, 0, lBitmap)
          If lRes = 0 Then
             Dim tJpgEncoder As GUID
             Dim tParams As EncoderParameters    '初始化解码器的GUID标识
             Select Case PicType
             Case ".jpg"
                CLSIDFromString StrPtr("{557CF401-1A04-11D3-9A73-0000F81EF32E}"), tJpgEncoder
                tParams.count = 1                               ' 设置解码器参数
                With tParams.Parameter ' Quality
                   CLSIDFromString StrPtr("{1D5BE4B5-FA4A-452D-9CDD-5DB35105E7EB}"), .GUID    ' 得到Quality参数的GUID标识
                   .NumberOfValues = 1
                   .type = 4
                   .Value = VarPtr(Quality)
                End With
                ReDim aEncParams(1 To Len(tParams))
                Call CopyMemory(aEncParams(1), tParams, Len(tParams))
            Case ".png"
                 CLSIDFromString StrPtr("{557CF406-1A04-11D3-9A73-0000F81EF32E}"), tJpgEncoder
                 ReDim aEncParams(1 To Len(tParams))
            Case ".gif"
                 CLSIDFromString StrPtr("{557CF402-1A04-11D3-9A73-0000F81EF32E}"), tJpgEncoder
                 ReDim aEncParams(1 To Len(tParams))
            Case ".tiff"
                 CLSIDFromString StrPtr("{557CF405-1A04-11D3-9A73-0000F81EF32E}"), tJpgEncoder
                 tParams.count = 2
                 ReDim aEncParams(1 To Len(tParams) + Len(tParams.Parameter))
                 With tParams.Parameter
                    .NumberOfValues = 1
                    .type = 4
                     CLSIDFromString StrPtr("{E09D739D-CCD4-44EE-8EBA-3FBF8BE4FC58}"), .GUID    ' 得到ColorDepth参数的GUID标识
                    .Value = VarPtr(TIFF_Compression)
                End With
                Call CopyMemory(aEncParams(1), tParams, Len(tParams))
                With tParams.Parameter
                    .NumberOfValues = 1
                    .type = 4
                     CLSIDFromString StrPtr("{66087055-AD66-4C7C-9A18-38A2310B8337}"), .GUID    ' 得到Compression参数的GUID标识
                    .Value = VarPtr(TIFF_ColorDepth)
                End With
                Call CopyMemory(aEncParams(Len(tParams) + 1), tParams.Parameter, Len(tParams.Parameter))
            Case ".bmp"                                               '可以提前写保存为BMP的代码,因为并没有用GDI+
                SavePicture pict, FileName
                Screen.MousePointer = vbDefault
                Exit Sub
            End Select
             lRes = GdipSaveImageToFile(lBitmap, StrPtr(FileName), tJpgEncoder, aEncParams(1))           '保存图像
             GdipDisposeImage lBitmap       ' 销毁GDI+图像
          End If
          GdiplusShutdown lGDIP              '销毁 GDI+
       End If
       Screen.MousePointer = vbDefault
       Erase aEncParams
       Exit Sub
    ErrHandle:
        Screen.MousePointer = vbDefault
        MsgBox "在保存图片的过程中发生错误:" & vbCrLf & vbCrLf & "错误号:  " & Err.Number & vbCrLf & "错误描述:  " & Err.Description, vbInformation Or vbOKOnly, "错误"
    End Sub
    ''************************用的gdiplus.dll来实现的。我不是很明白~但是很好用。
    谢谢这位大大~