【问题标题】:Compose one image from multiple images in asp.net and crop them在 asp.net 中从多张图像中合成一张图像并裁剪它们
【发布时间】:2015-11-06 19:33:01
【问题描述】:

我正在制作一个用于从多个图像合成图像的系统。假设我有两张图片,我想合成一张这样的图片:

粗边框定义了我想要的完整图像。它是一个分辨率为600X540 的 div,在其中有两个 div,每个 div 都包含一个不同的图像,我可以随意定位。在定位结束时,我得到了每张图片的左上边框(对应整个div)。

我无法在后面的代码中创建图像。我正在使用Bitmap.DrawImage 方法。这是我的代码:

 oImgOut = New System.Drawing.Bitmap(600, 540)

 oGraph = System.Drawing.Graphics.FromImage(oImgOut)
 oGraph.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic
 oGraph.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality
 oGraph.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality
 oGraph.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality
 oGraph.FillRectangle(Drawing.Brushes.White, 0, 0, 600, 540)

 //image 1
 oGraph.DrawImage(oImg1, CInt(left1), CInt(top1), CInt(width1), CInt(height1))
 oImg1.Dispose()

 //image2
 oGraph.DrawImage(oImg2, CInt(left2), CInt(top2), CInt(width2), CInt(height2))
 oImg2.Dispose()

 oImgOut.Save(strDirectory)
 oImgOut.Dispose()

这是我目前得到的:

我试着给每张图片一个 300px 的宽度和 540px 的高度,但是你看到右边的图片看起来很丑:

我想知道是否有办法裁剪图像?我查看了大部分 DrawImage 原型,但我找不到任何可以完成我想要的工作。你肯定比我更清楚。

谁能帮帮我?

【问题讨论】:

    标签: asp.net vb.net image drawimage


    【解决方案1】:

    我找到了使用 DrawImage 函数裁剪图像的解决方案

     oGraph.DrawImage(oImg2, CInt(left2), CInt(top2), _
                                New Rectangle(0, 0, _
                                              If(CInt(width2) > 600, 600, CInt(width2)), _
                                              If(CInt(height2) > 270, 270, CInt(height2)) + CInt(top2) _
                                               ), GraphicsUnit.Pixel)
    

    但我不明白它是如何工作的,请大家帮忙 :( .

    【讨论】:

      猜你喜欢
      • 2011-08-09
      • 1970-01-01
      • 1970-01-01
      • 2011-10-20
      • 2013-07-18
      • 1970-01-01
      • 1970-01-01
      • 2012-02-16
      • 2018-06-22
      相关资源
      最近更新 更多