Browse Source

Fix quantizer

Former-commit-id: 5b79f56d1d4a7660e65fc63feb0ee9389396571d
Former-commit-id: 119f108657f15b49dc20d6f51bf9f11cb76390ef
Former-commit-id: a07d5756efa4206bf7f974be98014877c14c1159
pull/17/head
Yufei Huang 11 years ago
parent
commit
ae8ab3d99d
  1. 12
      src/ImageProcessor/Formats/Gif/Quantizer/QuantizedImage.cs
  2. 4
      src/ImageProcessor/Formats/Gif/Quantizer/Quantizer.cs

12
src/ImageProcessor/Formats/Gif/Quantizer/QuantizedImage.cs

@ -60,18 +60,18 @@ namespace ImageProcessor.Formats
/// <returns></returns> /// <returns></returns>
public Image ToImage() public Image ToImage()
{ {
// TODO: Something is going wrong here. We have a palette.
Image image = new Image(); Image image = new Image();
int pixelCount = Pixels.Length; int pixelCount = Pixels.Length;
byte[] bgraPixels = new byte[pixelCount * 4]; 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]]; Bgra color = Palette[Pixels[i]];
bgraPixels[i + 0] = color.B; bgraPixels[j + 0] = color.B;
bgraPixels[i + 1] = color.G; bgraPixels[j + 1] = color.G;
bgraPixels[i + 2] = color.R; bgraPixels[j + 2] = color.R;
bgraPixels[i + 3] = color.A; bgraPixels[j + 3] = color.A;
} }
image.SetPixels(Width, Height, bgraPixels); image.SetPixels(Width, Height, bgraPixels);

4
src/ImageProcessor/Formats/Gif/Quantizer/Quantizer.cs

@ -61,9 +61,11 @@ namespace ImageProcessor.Formats
byte[] quantizedPixels = new byte[width * height]; byte[] quantizedPixels = new byte[width * height];
List<Bgra> palette = GetPalette();
this.SecondPass(imageBase, quantizedPixels, width, height); this.SecondPass(imageBase, quantizedPixels, width, height);
return new QuantizedImage(width, height, this.GetPalette().ToArray(), quantizedPixels); return new QuantizedImage(width, height, palette.ToArray(), quantizedPixels);
} }
/// <summary> /// <summary>

Loading…
Cancel
Save