コード例 #1
0
        public static void SetPixel(ImageLine line, int col, int r, int g, int b, int a)
        {
            int offset = col * line.channels;

            if (line.IsInt())
            {
                line.Scanline[offset++] = r;
                line.Scanline[offset++] = g;
                line.Scanline[offset]   = b;
                if (line.ImgInfo.Alpha)
                {
                    line.Scanline[offset + 1] = a;
                }
            }
            else
            {
                line.ScanlineB[offset++] = (byte)r;
                line.ScanlineB[offset++] = (byte)g;
                line.ScanlineB[offset]   = (byte)b;
                if (line.ImgInfo.Alpha)
                {
                    line.ScanlineB[offset + 1] = (byte)a;
                }
            }
        }
コード例 #2
0
 public static void SetPixelFromARGB8(ImageLine line, int column, 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);
     }
 }
コード例 #3
0
 public static int GetPixelToARGB8(ImageLine line, int column)
 {
     if (line.IsInt())
     {
         return(ToARGB8(line.Scanline, column * line.channels, line.ImgInfo.Alpha));
     }
     else
     {
         return(ToARGB8(line.ScanlineB, column * line.channels, line.ImgInfo.Alpha));
     }
 }
コード例 #4
0
 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));
     }
 }
コード例 #5
0
 public static double ReadDouble(ImageLine line, int pos)
 {
     if (line.IsInt())
     {
         return(line.Scanline[pos] / (line.MaxSampleVal + 0.9));
     }
     else
     {
         return((line.ScanlineB[pos]) / (line.MaxSampleVal + 0.9));
     }
 }
コード例 #6
0
 public static void SetPixel(ImageLine line, int col, int value)
 {
     if (line.channels != 1)
     {
         throw new System.Exception("this method is for 1 channel images only");
     }
     if (line.IsInt())
     {
         line.Scanline[col] = value;
     }
     else
     {
         line.ScanlineB[col] = (byte)value;
     }
 }