コード例 #1
0
    private void ScratchForm_Load(object sender, EventArgs e)
    {
      string fileName;
      ColorCollection source;
      ColorCollection destination;
      AdobePhotoshopColorSwatchSerializer serializer;

      fileName = Path.GetTempFileName();
      //source = ColorCollection.LoadPalette(Path.Combine(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "palettes"), "grayscale.pal"));
      source = ColorCollection.LoadPalette(Path.Combine(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "palettes"), "db32.gpl"));
      serializer = new AdobePhotoshopColorSwatchSerializer();

      using (Stream stream = File.Create(fileName))
      {
        serializer.Serialize(stream, source, AdobePhotoshopColorSwatchColorSpace.Hsb);
        //serializer.Serialize(stream, source, AdobePhotoShopColorSwatchColorSpace.Grayscale);
      }

      destination = ColorCollection.LoadPalette(fileName);

      colorGrid1.Colors = source;
      colorGrid2.Colors = destination;

      File.Delete(fileName);
    }
コード例 #2
0
ファイル: ScratchForm.cs プロジェクト: Fabio3rs/cmalcor
        private void ScratchForm_Load(object sender, EventArgs e)
        {
            string          fileName;
            ColorCollection source;
            ColorCollection destination;
            AdobePhotoshopColorSwatchSerializer serializer;

            fileName = Path.GetTempFileName();
            //source = ColorCollection.LoadPalette(Path.Combine(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "palettes"), "grayscale.pal"));
            source     = ColorCollection.LoadPalette(Path.Combine(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "palettes"), "db32.gpl"));
            serializer = new AdobePhotoshopColorSwatchSerializer();

            using (Stream stream = File.Create(fileName))
            {
                serializer.Serialize(stream, source, AdobePhotoshopColorSwatchColorSpace.Hsb);
                //serializer.Serialize(stream, source, AdobePhotoShopColorSwatchColorSpace.Grayscale);
            }

            destination = ColorCollection.LoadPalette(fileName);

            colorGrid1.Colors = source;
            colorGrid2.Colors = destination;

            File.Delete(fileName);
        }
        public void CanWriteTest()
        {
            // arrange
            IPaletteSerializer target;
            bool actual;

            target = new AdobePhotoshopColorSwatchSerializer();

            // act
            actual = target.CanWrite;

            // assert
            actual.Should().BeTrue();
        }
    public void CanWriteTest()
    {
      // arrange
      IPaletteSerializer target;
      bool actual;

      target = new AdobePhotoshopColorSwatchSerializer();

      // act
      actual = target.CanWrite;

      // assert
      actual.Should().BeTrue();
    }
        public void SerializeHslTest()
        {
            // arrange
            AdobePhotoshopColorSwatchSerializer target;
            ColorCollection expected;
            ColorCollection actual;
            MemoryStream    write;

            target = new AdobePhotoshopColorSwatchSerializer();

            expected = this.CreateDawnBringer32Palette(false);
            write    = new MemoryStream();

            // act
            target.Serialize(write, expected, AdobePhotoshopColorSwatchColorSpace.Hsb);

            using (MemoryStream read = new MemoryStream(write.ToArray()))
            {
                actual = new AdobePhotoshopColorSwatchSerializer().Deserialize(read);
            }

            // assert
            // TODO: Source HSL values are comprised of floating point numbers but the Adobe
            // file specification only allows whole numbers. This is causing a loss of precision
            // when converting to RGB with a +/- 1 difference. Might be a problem, might not be...
            // the intended use case is for RGB palettes only but may need to revisit this
            actual.Count.Should().Be(expected.Count);
            for (int i = 0; i < actual.Count; i++)
            {
                Color actualColor;
                Color expectedColor;

                actualColor   = actual[i];
                expectedColor = expected[i];

                ((int)actualColor.R).Should().BeInRange(expectedColor.R - 1, expectedColor.R + 1);
                ((int)actualColor.G).Should().BeInRange(expectedColor.G - 1, expectedColor.G + 1);
                ((int)actualColor.B).Should().BeInRange(expectedColor.B - 1, expectedColor.B + 1);
            }
        }
        public void DeserializeTest()
        {
            // arrange
            IPaletteSerializer target;
            string             fileName;
            ColorCollection    expected;
            ColorCollection    actual;

            fileName = Path.Combine(this.DataPath, "db32.aco");

            target = new AdobePhotoshopColorSwatchSerializer();

            expected = this.CreateDawnBringer32Palette(false);

            // act
            using (Stream stream = File.OpenRead(fileName))
            {
                actual = target.Deserialize(stream);
            }

            // assert
            actual.Should().Equal(expected);
        }
    public void DeserializeTest()
    {
      // arrange
      IPaletteSerializer target;
      string fileName;
      ColorCollection expected;
      ColorCollection actual;

      fileName = Path.Combine(this.DataPath, "db32.aco");

      target = new AdobePhotoshopColorSwatchSerializer();

      expected = this.CreateDawnBringer32Palette(false);

      // act
      using (Stream stream = File.OpenRead(fileName))
      {
        actual = target.Deserialize(stream);
      }

      // assert
      actual.Should().Equal(expected);
    }
        public void SerializeGrayscaleTest()
        {
            // arrange
            AdobePhotoshopColorSwatchSerializer target;
            ColorCollection expected;
            ColorCollection actual;
            MemoryStream    write;

            target = new AdobePhotoshopColorSwatchSerializer();

            expected = ColorCollection.LoadPalette(Path.Combine(this.DataPath, "grayscale.pal"));
            write    = new MemoryStream();

            // act
            target.Serialize(write, expected, AdobePhotoshopColorSwatchColorSpace.Grayscale);

            using (MemoryStream read = new MemoryStream(write.ToArray()))
            {
                actual = new AdobePhotoshopColorSwatchSerializer().Deserialize(read);
            }

            // assert
            // TODO: The grayscale color space suffers the same problem as HSB - see that test for more details
            actual.Count.Should().Be(expected.Count);
            for (int i = 0; i < actual.Count; i++)
            {
                Color actualColor;
                Color expectedColor;

                actualColor   = actual[i];
                expectedColor = expected[i];

                ((int)actualColor.R).Should().BeInRange(expectedColor.R - 1, expectedColor.R + 1);
                ((int)actualColor.G).Should().BeInRange(expectedColor.G - 1, expectedColor.G + 1);
                ((int)actualColor.B).Should().BeInRange(expectedColor.B - 1, expectedColor.B + 1);
            }
        }
        public void SerializeTest()
        {
            // arrange
            IPaletteSerializer target;
            ColorCollection    expected;
            ColorCollection    actual;
            MemoryStream       write;

            target = new AdobePhotoshopColorSwatchSerializer();

            expected = this.CreateDawnBringer32Palette(false);
            write    = new MemoryStream();

            // act
            target.Serialize(write, expected);

            using (MemoryStream read = new MemoryStream(write.ToArray()))
            {
                actual = new AdobePhotoshopColorSwatchSerializer().Deserialize(read);
            }

            // assert
            CollectionAssert.AreEqual(expected, actual);
        }
    public void SerializeGrayscaleTest()
    {
      // arrange
      AdobePhotoshopColorSwatchSerializer target;
      ColorCollection expected;
      ColorCollection actual;
      MemoryStream write;

      target = new AdobePhotoshopColorSwatchSerializer();

      expected = ColorCollection.LoadPalette(Path.Combine(this.DataPath, "grayscale.pal"));
      write = new MemoryStream();

      // act
      target.Serialize(write, expected, AdobePhotoshopColorSwatchColorSpace.Grayscale);

      using (MemoryStream read = new MemoryStream(write.ToArray()))
      {
        actual = new AdobePhotoshopColorSwatchSerializer().Deserialize(read);
      }

      // assert
      // TODO: The grayscale color space suffers the same problem as HSB - see that test for more details
      actual.Count.Should().Be(expected.Count);
      for (int i = 0; i < actual.Count; i++)
      {
        Color actualColor;
        Color expectedColor;

        actualColor = actual[i];
        expectedColor = expected[i];

        ((int)actualColor.R).Should().BeInRange(expectedColor.R - 1, expectedColor.R + 1);
        ((int)actualColor.G).Should().BeInRange(expectedColor.G - 1, expectedColor.G + 1);
        ((int)actualColor.B).Should().BeInRange(expectedColor.B - 1, expectedColor.B + 1);
      }
    }
    public void SerializeTest()
    {
      // arrange
      IPaletteSerializer target;
      ColorCollection expected;
      ColorCollection actual;
      MemoryStream write;

      target = new AdobePhotoshopColorSwatchSerializer();

      expected = this.CreateDawnBringer32Palette(false);
      write = new MemoryStream();

      // act
      target.Serialize(write, expected);

      using (MemoryStream read = new MemoryStream(write.ToArray()))
      {
        actual = new AdobePhotoshopColorSwatchSerializer().Deserialize(read);
      }

      // assert
      CollectionAssert.AreEqual(expected, actual);
    }
    public void SerializeHslTest()
    {
      // arrange
      AdobePhotoshopColorSwatchSerializer target;
      ColorCollection expected;
      ColorCollection actual;
      MemoryStream write;

      target = new AdobePhotoshopColorSwatchSerializer();

      expected = this.CreateDawnBringer32Palette(false);
      write = new MemoryStream();

      // act
      target.Serialize(write, expected, AdobePhotoshopColorSwatchColorSpace.Hsb);

      using (MemoryStream read = new MemoryStream(write.ToArray()))
      {
        actual = new AdobePhotoshopColorSwatchSerializer().Deserialize(read);
      }

      // assert
      // TODO: Source HSL values are comprised of floating point numbers but the Adobe
      // file specification only allows whole numbers. This is causing a loss of precision
      // when converting to RGB with a +/- 1 difference. Might be a problem, might not be...
      // the intended use case is for RGB palettes only but may need to revisit this
      actual.Count.Should().Be(expected.Count);
      for (int i = 0; i < actual.Count; i++)
      {
        Color actualColor;
        Color expectedColor;

        actualColor = actual[i];
        expectedColor = expected[i];

        ((int)actualColor.R).Should().BeInRange(expectedColor.R - 1, expectedColor.R + 1);
        ((int)actualColor.G).Should().BeInRange(expectedColor.G - 1, expectedColor.G + 1);
        ((int)actualColor.B).Should().BeInRange(expectedColor.B - 1, expectedColor.B + 1);
      }
    }