【发布时间】:2021-08-20 15:56:01
【问题描述】:
我正在尝试将一些 Java 代码转换为 C# 用于应用程序。我似乎无法在 C# .NET 的 android.Graphics.Bitmap 中找到与 setPixels 方法完全相同的方法。
这是Java代码:
BitMatrix result = some code .....
int w = result.getWidth();
int h = result.getHeight();
int[] pixels = new int[w * h];
for (int y = 0; y < h; y++) {
int offset = y * w;
for (int x = 0; x < w; x++) {
pixels[offset + x] = result.get(x, y) ? BLACK : WHITE;
}
}
Bitmap bitmap = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
bitmap.setPixels(pixels, 0, 480, 0, 0, w, h);
这是我将其转换为 C# 的尝试:
int w = result.Width;
int h = result.Height;
int[] pixels = new int[w * h];
for (int y = 0; y < h; y++)
{
int offset = y * w;
for (int x = 0; x < w; x++)
{
pixels[offset + x] = result[x, y] ? Color.Black.ToArgb() : Color.White.ToArgb();
}
}
Bitmap bitmap = new Bitmap(w, h);
// how to convert the line below
bitmap.setPixels(pixels, 0, 480, 0, 0, w, h);
我应该如何将最后一行转换为 C#。有什么建议吗?
【问题讨论】:
-
你见过Bitmap.SetPixel 吗?如果要设置多个像素,见fast work with bitmaps
-
另外,WriteableBitmap.WritePixels 以获得更现代的选择。
-
@JonasH 我确实看到了 Bitmap.SetPixel 但不知道如何使用它。经过进一步思考:` for (int Xcount = 0; Xcount
-
但我不确定应该放 pixels[Xcount] 还是 pixels[Ycount] ?
标签: c# android-studio bitmap android-bitmap