.net - DrawImage 中的灰色边框 (.NET system.drawing.drawing2D)

标签 .net system.drawing system.drawing.imaging visual-artifacts

我正在尝试使用 C# 在位图上创建图像。它总是以某种方式在图像的所有边上添加灰色边框。许多问题都与解决方案一起发布,我几乎尝试了所有问题,但没有一个有效。

我正在使用的代码:

Bitmap appearance = new Bitmap(490, 196, PixelFormat.Format32bppArgb);

using (Graphics graphics = Graphics.FromImage(appearance))
{
    graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
    graphics.SmoothingMode = SmoothingMode.AntiAlias;
    graphics.PixelOffsetMode = PixelOffsetMode.Half;
    graphics.CompositingMode = CompositingMode.SourceCopy;

    using (ImageAttributes wrapMode = new ImageAttributes())
    {
        wrapMode.SetWrapMode(WrapMode.TileFlipXY);
        Rectangle destination = new Rectangle(5, 99, 240, 94);
        graphics.DrawImage(img, destination, 0, 0, img.Width, img.Height, GraphicsUnit.Pixel, wrapMode);
    }
}
   
appearance.Save("F:\\SignatureAppearance.jpeg");

谁能帮帮我?缩小时灰色边框不显示,但当开始放大时,边框开始出现。

enter image description here

任何帮助将不胜感激

我试图创建一个白色背景的图像,即使它有右边框和底边框。

Bitmap appearance = new Bitmap(490, 196, PixelFormat.Format32bppArgb);
using (Graphics graphics = Graphics.FromImage(appearance)) { 
// graphics.Clear(Color.White); 
   Rectangle ImageSize = new Rectangle(0, 0, 490, 196); 
   graphics.FillRectangle(Brushes.White, ImageSize); } 
    appearance.Save("F:\\Signature_Appearance.png", ImageFormat.Png);

enter image description here

最佳答案

问题似乎是您没有指定保存格式,PixelFormat.Format32bppArgb 图像的默认保存格式是 PNG。您路径上的文件扩展名将被忽略。

您需要将最后一行更改为

appearance.Save(@"F:\SignatureAppearance.jpeg", ImageFormat.Jpeg);

实际获得 JPEG 输出。

此外,您可能没有填充您创建的整个 Bitmap,除非您的示例中省略了该代码。为确保白色背景,您需要用白色填充任何未定义的像素,因为透明像素在 JPEG 编码器中被映射为黑色。您上面的代码片段仅显示定义了图像的 destination 子区域。您可以通过插入来填充缺失区域

graphics.Clear(Color.White);

在绘制子矩形之前。

关于.net - DrawImage 中的灰色边框 (.NET system.drawing.drawing2D),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63087257/

相关文章:

.net - 如何为基于 ItemsControl 的控件(如 ListView 或 DataGrid)定义 Empty DataTemplate

c# - 如何绘制看起来像 CAD 立面图的矩形

asp.net - 请帮助我使用 image.GetThumbnailImage(它会创建非常低质量的图像)

c# - 如何在 C# 中渲染带有颜色键控的绿色蒙版的图像?

c# - 以编程方式用白色填充替换图像中的透明区域?

c# - Convert.ToDateTime() 的意外行为

c# - 如何防止无边框 Windows 窗体在调整大小时闪烁(C#)?

c# - HTML 到图像使用 NReco.ImageGenerator : C#

c# - 由于应用程序/dime (.Net) 的内容类型导致使用 Web 服务时出错

c# - System.Drawing 的撤消按钮?