1

我正在使用以下内容在我的应用程序上捕获签名

https://github.com/Cheesebaron/MonoDroid.CaptureSignature

如果我将图像保存为 png,它工作正常,但我想将其保存为 jpg

我将 Bitmap.CompressFormat.Png 更改为 Bitmap.CompressFormat.Jpg

但我得到的是一个黑色的 jpg 文件,因为文字是黑色的

并且背景已经是黑色的。如何使图像背景变白?

我改变的代码

using (var fs = new FileStream(extFileName, FileMode.OpenOrCreate))
{
  _capture.CanvasBitmap().Compress(Bitmap.CompressFormat.Jpg, 100, fs);
}

寻求帮助。谢谢

4

1 回答 1

1

我认为你只能通过在画布上设置颜色来做到这一点。

请参阅如何更改已保存的透明位图的背景颜色

所以你可以尝试改变:

_capture.CanvasBitmap().Compress(Bitmap.CompressFormat.Png, 100, fs);

类似于:

var b = _capture.CanvasBitmap();
var newBitmap = Bitmap.CreateBitmap(b.Width, b.Height, b.Config);
var canvas = new Canvas(newBitmap);
canvas.DrawColor(Color.WHITE);
canvas.DrawBitmap(b, 0, 0, null);
newBitmap.Compress(Bitmap.CompressFormat.Jpg, 100, fs);

但是此代码在这里未经测试 - 抱歉!

于 2012-10-24T23:06:45.457 回答