A.bmp 想缩放后保存,如何实现?

解决方案 »

  1.   

    通过picturebox重新paint,然后通过savepicture保存
      

  2.   


    picturebox 没有 savepicture 
    你能做就发代码来。
      

  3.   

    picturebox没有savepicture功能。时间太久了,你糊涂了。。
      

  4.   

    谁说savepicture是picturebox的方法了。savepicture是独立的一个函数,你不清楚可以理解,但是你百度都不百度一下就给出不行二字那就是你的错了。
      

  5.   

    本帖最后由 bcrun 于 2011-05-16 15:10:37 编辑
      

  6.   

    Option Explicit
    Private Declare Function StretchBlt Lib "gdi32.dll" (ByVal hdc 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 nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long
    Private Const SRCCOPY As Long = &HCC0020Private Sub Command1_Click()
        '保存个铲铲c:\chanchan_1.bmp
        SavePicture Picture1.Image, "c:\chanchan_1.bmp"
    End SubPrivate Sub Form_Load()
        Picture2.ScaleMode = 3
        Picture1.ScaleMode = 3
        Picture2.AutoRedraw = True
        Picture1.AutoRedraw = True
        '先在picture2上加载个铲铲
        Picture2.Picture = LoadPicture("c:\chanchan.jpg")
        '缩放个铲铲到picture1
        Call StretchBlt(Picture1.hdc, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight, Picture2.hdc, 0, 0, Picture2.ScaleWidth, Picture2.ScaleHeight, SRCCOPY)
        'Picture1.Refresh
    End Sub
      

  7.   

    既然楼上直接給鱼了,那我给完渔再给鱼吧。'添加一个Picture1即可
    Private Sub Form_Load()
        Picture1.AutoRedraw = True
        Picture1.Picture = LoadPicture("c:\ 缩放前.jpg")
        Picture1.Width = Picture1.Width / 2
        Picture1.Height = Picture1.Height / 2
        Picture1.PaintPicture Picture1, 0, 0, Picture1.Width, Picture1.Height
        SavePicture Picture1.Image, "c:\缩放后.jpg"
    End Sub
      

  8.   

    这样缩放图片会失真,加上HALFTONE缩放模式就可以了.参见: http://topic.csdn.net/u/20080910/20/1ab23882-3cb0-49dc-9b86-eb169e58a823.html