我正在尝试使用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");有谁可以帮我?灰色边框在缩小时不会显示,但当开始放大时,边框开始出现。

任何帮助我们都将不胜感激。
我试图创建一个白色背景的图像,即使它有右边框和下边框。
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);}

发布于 2020-07-27 04:23:00
问题似乎是您没有指定保存格式,而使用PixelFormat.Format32bppArgb的图像的默认保存格式是PNG。忽略路径上的文件扩展名。
您需要将最后一行更改为
appearance.Save(@"F:\SignatureAppearance.jpeg", ImageFormat.Jpeg);才能真正得到JPEG输出。
此外,您可能没有填充您创建的整个Bitmap,除非在示例中省略了该代码。为了确保白色背景,您需要用白色填充任何未定义的像素,因为透明像素在JPEG编码器中映射为黑色。上面的代码片段仅显示定义了图像的destination分区。您可以通过插入以下内容来填充缺少的区域
graphics.Clear(Color.White);然后再画入子矩形。
https://stackoverflow.com/questions/63087257
复制相似问题