代码之家  ›  专栏  ›  技术社区  ›  Vaccano

裁剪一个位图,然后具有相同的“大小”图像

  •  0
  • Vaccano  · 技术社区  · 9 年前

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

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

    这一切都很好。

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

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

    如果我没有裁剪图像,那么它们将显示为正常大小。(品牌图像覆盖图像水平尺寸的约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 回复  |  直到 7 年前
        1
  •  1
  •   Community Neeleshkumar S    7 年前

    你少了一步。在其中添加“比例”。

    而不是 裁剪->品牌

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

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