裁剪一个位图,然后得到相同的 "Size" 图像

Crop a Bitmap and have the same "Size" image afterward

我有一张从网络摄像头拍摄的图像。我需要提供放大此图像的错觉。

由于网络摄像头没有光学变焦,我通过裁剪图像来做到这一点。

这一切都很好。

但是在裁剪图像后,我在图像顶部添加了一些日期戳和品牌图像水印。

问题: 如果我裁剪了图像,则生成的文本和品牌水印会显得非常大。 (品牌形象几乎覆盖了图像水平 space 的一半。)

如果我没有裁剪图像,它们将显示为正常大小。 (品牌形象占图像水平尺寸的 1/16 左右。)

这(当然)是因为裁剪后的图像较小,但品牌图像保持相同大小。 有没有办法裁剪图像以使生成的图像相同"size"(如上所述)?

我宁愿不必动态调整水印的大小。

我试过的:

代码:

public static Bitmap CropAtRect(Bitmap bitmap, Rectangle rect)
{
   Bitmap croppedBitmap = bitmap.Clone(rect, bitmap.PixelFormat);
   croppedBitmap.SetResolution(bitmap.HorizontalResolution,bitmap.VerticalResolution);
   return croppedBitmap;
}

private Bitmap BrandImage(Bitmap bitmapImage)
{       
   waterMarker = new WaterMarker();
   Bitmap brandedImage = waterMarker.BrandImage(bitmapImage, DateTime.Now.ToString());
   return brandedImage;
}

WaterMarker 来自这个 CodeProject:
http://www.codeproject.com/Articles/2927/Creating-a-Watermarked-Photograph-with-GDI-for-NET

你少了一步。将 "Scale" 添加到那里。

而不是 作物 -> 品牌

裁剪 -> 缩放(调整回原始大小)-> 品牌

这是关于如何在 C# 中缩放图像的堆栈溢出。 Resize image proportionally with MaxHeight and MaxWidth constraints