Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 如何将两个图片框合并到一个固定位置_Vb.net_Winforms_Screenshot - Fatal编程技术网

Vb.net 如何将两个图片框合并到一个固定位置

Vb.net 如何将两个图片框合并到一个固定位置,vb.net,winforms,screenshot,Vb.net,Winforms,Screenshot,我有两个图片框,我只想将它们导出为一个图像。 我所需要的只是在它们的状态下导出它们,而不是创建一个.bmp。我试着把它作为表单的截图,但问题是有时候图片比表单大,截图只占表单可见的部分,我该怎么办 下面是屏幕截图的代码示例 MenuStrip1.Hide() Dim bmpScreenshot As Bitmap = New Bitmap(Width, Height, PixelFormat.Format32bppArgb) ' Create a graphics object

我有两个图片框,我只想将它们导出为一个图像。 我所需要的只是在它们的状态下导出它们,而不是创建一个.bmp。我试着把它作为表单的截图,但问题是有时候图片比表单大,截图只占表单可见的部分,我该怎么办

下面是屏幕截图的代码示例

MenuStrip1.Hide()
    Dim bmpScreenshot As Bitmap = New Bitmap(Width, Height, PixelFormat.Format32bppArgb)
    ' Create a graphics object from the bitmap  
    Dim gfxScreenshot As Graphics = Graphics.FromImage(bmpScreenshot)
    ' Take a screenshot of the entire Form1  
    gfxScreenshot.CopyFromScreen(Me.Location.X, Me.Location.Y, 0, 0, Me.Size, CopyPixelOperation.SourceCopy)
    ' Save the screenshot  
    SaveFileDialog1.ShowDialog()
    SaveFileDialog1.Filter = "Image files (*.PNG)|*.PNG|(*.JPG*)|*.JPG*"
    bmpScreenshot.Save(SaveFileDialog1.FileName)
    MenuStrip1.Show()

以下是PictureBox1作为“背景”和PictureBox2作为PictureBox1“顶部”的较小图像时的外观:

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    SaveFileDialog1.Filter = "Image files (*.PNG)|*.PNG|(*.JPG*)|*.JPG*"
    If SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
        Dim bmp As New Bitmap(PictureBox1.Image.Width, PictureBox1.Image.Height)
        Using G As Graphics = Graphics.FromImage(bmp)
            G.Clear(Color.Black)
            G.DrawImage(PictureBox1.Image, New Point(0, 0))
            G.DrawImage(PictureBox2.Image, PictureBox2.Location)
        End Using
        Select Case System.IO.Path.GetExtension(SaveFileDialog1.FileName).ToUpper
            Case ".PNG"
                bmp.Save(SaveFileDialog1.FileName, System.Drawing.Imaging.ImageFormat.Png)
            Case ".JPG"
                bmp.Save(SaveFileDialog1.FileName, System.Drawing.Imaging.ImageFormat.Jpeg)
        End Select
    End If
End Sub

也许你在找?@Idle\u Mind我试过位图,但结果都不准确,我只想将2个picturebox导出为1个picturebox,而不是2个picturebox。他们的位置将是一样的,就像一个屏幕截图,但我想确保它涵盖了所有的图片,甚至是屏幕上看不到的部分(需要滚动才能看到)。对不起,我的英语不好。嗯……图片框是并排的,还是一个在另一个上面?它们有相同的尺寸吗?我们看不出你是如何得到“不准确”的结果的,除非你发布一个描述和/或一个屏幕截图来演示……也许可以将picturebox设置为autosize,然后获得它的高度和宽度。然后在截图之前相应地调整窗体的大小?不,有时候图片的高度太长,即使我调整窗体的大小也无法在屏幕上显示,这是我在尝试使用截图解决方案时遇到的主要问题。非常感谢你的努力。不幸的是,这不是我想要的,我会解释我想要的,希望我能安静地理解,物体1有一张图片,物体2,物体1是背景图片,物体2是运动图片,用户将在背景图像上设置对象2的位置,在他这样做之后,我想创建一个新的图片,就像对象1和对象2的现有状态的屏幕截图,但问题是,屏幕截图在某些情况下不起作用,还有其他方法吗?谢谢,我希望我没有那么复杂,一点问题也没有。你如何移动物体2?这听起来很像我已经发布的,使用了两个对DrawImage()的调用。这不会是问题,我只需要合并部分,这就是我被困的地方,对象2也是一个picturebox(它位于另一个的“顶部”)?如何移动对象2?