裁剪位图并在之后使用相同的“尺寸”图像

时间:2015-08-20 18:18:28

标签: c# .net image-processing bitmap resolution

我有一张我从网络摄像头拍摄的照片。我需要提供缩放此图像的幻觉。

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

这一切都很棒。

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

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

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

这是(当然)因为裁剪的图像较小,但品牌图像的大小保持不变。 有没有办法裁剪图像,以便生成的图像具有相同的“尺寸”(如上所述)?

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

我尝试了什么:

代码:

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

1 个答案:

答案 0 :(得分:1)

你错过了一步。添加"比例"进入那里。

而不是 裁剪 - >品牌

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

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