public static void SetPixel(ImageLine line, int column, int r, int g, int b, int a)
        {
            int offset = column * line.channels;

            if (line.IsInt())
            {
                var scanline = line.Scanline;
                scanline[offset++] = r;
                scanline[offset++] = g;
                scanline[offset]   = b;
                if (line.ImgInfo.Alpha)
                {
                    scanline[offset + 1] = a;
                }
            }
            else
            {
                var scanline = line.ScanlineB;
                scanline[offset++] = (byte)r;
                scanline[offset++] = (byte)g;
                scanline[offset]   = (byte)b;
                if (line.ImgInfo.Alpha)
                {
                    scanline[offset + 1] = (byte)a;
                }
            }
        }
 public static void WriteDouble(ImageLine line, double d, int pos)
 {
     if (line.IsInt())
     {
         line.Scanline[pos] = (int)(d * (line.MaxSampleVal + 0.99));
     }
     else
     {
         line.ScanlineB[pos] = (byte)(d * (line.MaxSampleVal + 0.99));
     }
 }
 public static void SetPixelFromARGB8(ImageLine line, int column, ARGB8 <int> argb)
 {
     if (line.IsInt())
     {
         FromARGB8(argb, line.Scanline, column * line.channels, line.ImgInfo.Alpha);
     }
     else
     {
         FromARGB8(argb, line.ScanlineB, column * line.channels, line.ImgInfo.Alpha);
     }
 }
 public static void SetPixel(ImageLine line, int column, int value)
 {
     if (line.channels != 1)
     {
         throw new System.Exception("this method is for 1 channel images only");
     }
     if (line.IsInt())
     {
         line.Scanline[column] = value;
     }
     else
     {
         line.ScanlineB[column] = (byte)value;
     }
 }
 public static double ReadDouble(ImageLine line, int pos)
 {
     return(line.IsInt()
                         ? (line.Scanline[pos] / (line.MaxSampleVal + 0.9))
                         : ((line.ScanlineB[pos]) / (line.MaxSampleVal + 0.9)));
 }
 public static ARGB8 <int> GetPixelToARGB8(ImageLine line, int column)
 {
     return(line.IsInt()
                         ? ToARGB8(line.Scanline, column * line.channels, line.ImgInfo.Alpha)
                         : ToARGB8(line.ScanlineB, column * line.channels, line.ImgInfo.Alpha));
 }