예제 #1
0
파일: RGBandLab.cs 프로젝트: Grimhill/Image
        //bad, when from file. Lost a lot from converting and round
        public static List <ArraysListInt> Lab2RGB(Bitmap img)
        {
            var labxyz = XYZandLab.Lab2XYZ(img);
            var xyzrgb = RGBandXYZ.XYZ2RGB(labxyz);

            return(xyzrgb);
        }
예제 #2
0
파일: RGBandLab.cs 프로젝트: Grimhill/Image
        //bad, when from file. Lost a lot from converting and round
        public static List <ArraysListInt> Lab1976toRGB(Bitmap img)
        {
            List <ArraysListInt> ColorList = Helpers.GetPixels(img);
            var labxyz = XYZandLab.Lab2XYZ((ColorList[0].Color).ArrayToDouble().ArrayDivByConst(2.57),
                                           ColorList[1].Color.ArrayToDouble(), ColorList[2].Color.ArrayToDouble());

            var xyzrgb = Lab2RGB(labxyz);

            return(xyzrgb);
        }
예제 #3
0
파일: RGBandLab.cs 프로젝트: Grimhill/Image
        //L a b in double values (as after convert XYZ2lab; not in range [0 1])
        //L a b arrays in In the following order L-a-b
        public static List <ArraysListInt> Lab2RGB(double[,] l, double[,] a, double[,] b)
        {
            List <ArraysListInt> rgbResult = new List <ArraysListInt>();

            if (l.Length != a.Length || l.Length != b.Length)
            {
                Console.WriteLine("L a b arrays size dismatch in lab2rgb operation -> lab2rgb(double[,] L, double[,] a, double[,] b) <-");
            }
            else
            {
                List <ArraysListDouble> labxyz = XYZandLab.Lab2XYZ(l, a, b);
                List <ArraysListInt>    xyzrgb = RGBandXYZ.XYZ2RGB(labxyz);

                rgbResult = xyzrgb;
            }

            return(rgbResult);
        }
예제 #4
0
파일: RGBandLab.cs 프로젝트: Grimhill/Image
        //L a b in double values (as after convert XYZ2lab; not in range [0 1])
        //list L a b arrays in In the following order L-a-b
        public static List <ArraysListInt> Lab2RGB(List <ArraysListDouble> labList)
        {
            List <ArraysListInt> rgbResult = new List <ArraysListInt>();

            if (labList[0].Color.Length != labList[1].Color.Length || labList[0].Color.Length != labList[2].Color.Length)
            {
                Console.WriteLine("L a b arrays size dismatch in lab2rgb operation -> lab2rgb(List<arraysListDouble> labList) <-");
            }
            else
            {
                List <ArraysListDouble> labxyz = XYZandLab.Lab2XYZ(labList);
                List <ArraysListInt>    xyzrgb = RGBandXYZ.XYZ2RGB(labxyz);

                rgbResult = xyzrgb;
            }

            return(rgbResult);
        }