【问题标题】:Crop a Bitmap and have the same "Size" image afterward裁剪位图并在之后具有相同的“大小”图像
【发布时间】:2015-08-20 18:18:28
【问题描述】:

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

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

这一切都很好。

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

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

如果我没有裁剪图像,那么它们会显示为正常大小。 (品牌形象约占图片水平尺寸的 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

【问题讨论】:

  • 您想按顺序裁剪、缩放、品牌。

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


【解决方案1】:

你少了一个步骤。在其中添加“Scale”。

而不是 作物 -> 品牌

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

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

【讨论】:

  • 就是这样!现在看起来很明显。谢谢!
猜你喜欢
  • 2014-09-05
  • 1970-01-01
  • 2013-03-01
  • 2019-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-01
  • 1970-01-01
相关资源
最近更新 更多