diff --git a/src/ImageProcessor/Formats/Gif/Quantizer/QuantizedImage.cs b/src/ImageProcessor/Formats/Gif/Quantizer/QuantizedImage.cs
index e29a310e5..1d4d3b3f7 100644
--- a/src/ImageProcessor/Formats/Gif/Quantizer/QuantizedImage.cs
+++ b/src/ImageProcessor/Formats/Gif/Quantizer/QuantizedImage.cs
@@ -60,18 +60,18 @@ namespace ImageProcessor.Formats
///
public Image ToImage()
{
- // TODO: Something is going wrong here. We have a palette.
Image image = new Image();
int pixelCount = Pixels.Length;
byte[] bgraPixels = new byte[pixelCount * 4];
- for (int i = 0; i < pixelCount; i += 4)
+ for (int i = 0; i < pixelCount; i++)
{
+ int j = i * 4;
Bgra color = Palette[Pixels[i]];
- bgraPixels[i + 0] = color.B;
- bgraPixels[i + 1] = color.G;
- bgraPixels[i + 2] = color.R;
- bgraPixels[i + 3] = color.A;
+ bgraPixels[j + 0] = color.B;
+ bgraPixels[j + 1] = color.G;
+ bgraPixels[j + 2] = color.R;
+ bgraPixels[j + 3] = color.A;
}
image.SetPixels(Width, Height, bgraPixels);
diff --git a/src/ImageProcessor/Formats/Gif/Quantizer/Quantizer.cs b/src/ImageProcessor/Formats/Gif/Quantizer/Quantizer.cs
index ec00bf508..bcb8e79fb 100644
--- a/src/ImageProcessor/Formats/Gif/Quantizer/Quantizer.cs
+++ b/src/ImageProcessor/Formats/Gif/Quantizer/Quantizer.cs
@@ -61,9 +61,11 @@ namespace ImageProcessor.Formats
byte[] quantizedPixels = new byte[width * height];
+ List palette = GetPalette();
+
this.SecondPass(imageBase, quantizedPixels, width, height);
- return new QuantizedImage(width, height, this.GetPalette().ToArray(), quantizedPixels);
+ return new QuantizedImage(width, height, palette.ToArray(), quantizedPixels);
}
///