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