在Picture1中有一Image1,Picture1用Line方法画的线怎么和Image1中的图片融合成一体?
现在的问题是,保存的时候保存不了Image1中的图片,只保存了Line方法画的线,怎么才能一起保存成一个图片?
不知道我说明白了没有。

解决方案 »

  1.   

    参考一下VB使用API在内存中绘制曲线再显示到图片框上 http://download.csdn.net/source/2368159
    思路,把Image1和Picture1中的图像都保存到自己创建的hDC上下文中,当需要保存时就用BitBlt依照次序把图像逐个拷贝到Picture1中保存……
      

  2.   

        Picture1.AutoRedraw = True
        Picture1.PaintPicture Image1.Picture, Image1.Left, Image1.Top
        Picture1.Line (0, 0)-(Picture1.ScaleWidth, Picture1.ScaleHeight), vbRed
        SavePicture Picture1.Image, "C:\aa.jpg"
      

  3.   

    这个代码可以保存,但是有一个问题,如果image1中的图片是缩小显示在Image中的话,那么保存后的图片就不和Picture1中的一致了。我觉得使用API函数,StretchBlt来复制image1的图像到Picture1中最好。
      

  4.   

    呵呵,不用API了Private Sub Command1_Click()
        Picture1.AutoRedraw = True
        Picture1.PaintPicture Image1.Picture, Image1.Left, Image1.Top, Image1.Width, Image1.Height
        Picture1.Line (0, 0)-(Picture1.ScaleWidth, Picture1.ScaleHeight), vbRed
        SavePicture Picture1.Image, "C:\aa.jpg"
    End Sub
      

  5.   

    怎么用StretchBlt来复制image1的图像到Picture1中?
      

  6.   

    Stretchblt有些难度,image控件没有hdc属性,如果使用picuture控件还是比较方便的。
      

  7.   

    Picture1.PaintPicture  画不上
      

  8.   

    可以使用picuture控件
    但 Picture2的图片画到Picture1中要居中
    不用API也行,只要能跟line画的融到一起
      

  9.   

    Picture2 在picture1里面居中有何难?
    picture2.left = (picture1.scalwidth - picture2.width)/2
    picture2.top = (picture1.scalheigh - picture2.heigh)/2
      

  10.   


    其实vb里面的painpicture本质就是StretchBlt,把参数填全了就看到效果了