BitMiracle.TiffCP.Copier.cpContig2SeparateByRow C# (CSharp) Méthode

cpContig2SeparateByRow() private méthode

private cpContig2SeparateByRow ( Tiff inImage, Tiff outImage, int imagelength, int imagewidth, short spp ) : bool
inImage BitMiracle.LibTiff.Classic.Tiff
outImage BitMiracle.LibTiff.Classic.Tiff
imagelength int
imagewidth int
spp short
Résultat bool
        bool cpContig2SeparateByRow(Tiff inImage, Tiff outImage, int imagelength, int imagewidth, short spp)
        {
            byte[] inbuf = new byte[inImage.ScanlineSize()];
            byte[] outbuf = new byte[outImage.ScanlineSize()];

            /* unpack channels */
            for (short s = 0; s < spp; s++)
            {
                for (int row = 0; row < imagelength; row++)
                {
                    if (!inImage.ReadScanline(inbuf, row, 0) && !m_ignore)
                    {
                        Tiff.Error(inImage.FileName(), "Error, can't read scanline {0}", row);
                        return false;
                    }

                    int inp = s;
                    int outp = 0;

                    for (int n = imagewidth; n-- > 0; )
                    {
                        outbuf[outp] = inbuf[inp];
                        outp++;
                        inp += spp;
                    }

                    if (!outImage.WriteScanline(outbuf, row, s))
                    {
                        Tiff.Error(outImage.FileName(), "Error, can't write scanline {0}", row);
                        return false;
                    }
                }
            }

            return true;
        }