Files
Liberium-1.8-Source-Code/Server.Helper/BitmapCoding.cs
T

51 lines
1.1 KiB
C#
Raw Normal View History

2026-08-27 11:21:58 -06:00
using System.Drawing;
namespace Server.Helper;
internal class BitmapCoding
{
public static int[] WHGet(int Length)
{
int[] array = new int[2] { 3, 3 };
while (array[0] * array[1] <= Length)
{
array[0]++;
array[1]++;
}
return array;
}
public static Bitmap ByteToBitmap(byte[] buffer)
{
int[] array = WHGet(buffer.Length);
int num = 0;
Bitmap bitmap = new Bitmap(array[0], array[1]);
for (int i = 0; i < array[0]; i++)
{
for (int j = 0; j < array[1]; j++)
{
if (num + 3 <= buffer.Length)
{
bitmap.SetPixel(i, j, Color.FromArgb(255, buffer[num], buffer[num + 1], buffer[num + 2]));
num += 3;
continue;
}
if (num + 2 <= buffer.Length)
{
bitmap.SetPixel(i, j, Color.FromArgb(20, buffer[num], buffer[num + 1], 0));
num += 2;
continue;
}
if (num + 1 > buffer.Length)
{
bitmap.SetPixel(i, j, Color.FromArgb(100, 0, 0, 0));
return bitmap;
}
bitmap.SetPixel(i, j, Color.FromArgb(30, buffer[num], 0, 0));
num++;
}
}
return bitmap;
}
}