private void CreateUpscaledPreviewTexture() { var scaler = new xBRZNet.xBRZScaler(); var whitedImage = new Bitmap(Image.Width, Image.Height); for (var y = 0; y < Image.Height; y++) { for (var x = 0; x < Image.Width; x++) { var col = Image.GetPixel(x, y); if (col.A == 0) { whitedImage.SetPixel(x, y, System.Drawing.Color.FromArgb(255, 255, 255)); } else { whitedImage.SetPixel(x, y, col); } } } var scaledImage = scaler.ScaleImage(whitedImage, 4, null); whitedImage.Dispose(); var texture = new Texture2D(scaledImage.Width, scaledImage.Height, TextureFormat.RGB24, false); for (int y = 0; y < texture.width; y++) { for (int x = 0; x < texture.height; x++) { var col = scaledImage.GetPixel(x, y); if (col.A == 0) { texture.SetPixel(x, texture.height - y, new Color(1f, 1f, 1f, 1f)); } else { texture.SetPixel(x, texture.height - y, new Color(((float)col.R) / 255f, ((float)col.G) / 255f, ((float)col.B) / 255f, ((float)col.A) / 255f)); } } } texture.Apply(); _UpscaledPreviewTexture = texture; }