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)); }