public void Aply_Button_Click(object sender, EventArgs e) { string OperationName = PROGRAM.GiveOperationName(OperationIDName); SERVICE.DataOperation(LastModification, OperationName); if (!SERVICE.data.LastData().Ready) { SERVICE.ImageOperation("RecalculateHistogramData_tsmi"); } this.Histogram.ReloadHistogram(SERVICE.data.LastData().data.data); }
public override void Start(Program program, ImageForm_Service service, IOperation operation, string operationName) { if (program == null) { return; } if (service == null) { return; } if (operation == null) { return; } if (operationName == null) { return; } this.PROGRAM = program; this.SERVICE = service; this.OPERATION = operation; this.OperationIDName = operationName; if (SERVICE.data == null) { return; } if (SERVICE.data.LastData() == null) { return; } if (!SERVICE.data.LastData().Ready) { SERVICE.ImageOperation("RecalculateHistogramData_tsmi"); } this.Histogram.ReloadHistogram(SERVICE.data.LastData().data.data); MaxValue.Value = SERVICE.data.LastData().data.maxValue; value.Value = MaxValue.Value / 2; ReloadLanguage(); ReloadColorSet(); this.form.Show(); wait = false; }
public override ImageData GetResult(ImageForm_Service service) { if (service.data.LastData() == null) { return(null); } if (service.data.LastData().Bitmap == null) { return(null); } if (!service.data.LastData().Ready) { service.ImageOperation("RecalculateHistogramData_tsmi"); } Bitmap oldBitmap = service.data.LastData().Bitmap; Bitmap newBitmap = new Bitmap(oldBitmap.Width, oldBitmap.Height, service.data.LastData().Bitmap.PixelFormat); List <int> LUTred = CalculateLUT(service.data.LastData().data_R); List <int> LUTgreen = CalculateLUT(service.data.LastData().data_G); List <int> LUTblue = CalculateLUT(service.data.LastData().data_B); HistogramData general = new HistogramData(); HistogramData red = new HistogramData(); HistogramData green = new HistogramData(); HistogramData blue = new HistogramData(); service.imageWindow.StartProgressBar(); for (int h = 0; h < oldBitmap.Height; ++h) { service.imageWindow.SetProgressBarValue(h * 100 / oldBitmap.Height); for (int w = 0; w < oldBitmap.Width; ++w) { Color pixel = oldBitmap.GetPixel(w, h); Color newPixel = Color.FromArgb(pixel.A, LUTred[pixel.R], LUTgreen[pixel.G], LUTblue[pixel.B]); newBitmap.SetPixel(w, h, newPixel); general.SumUp(newPixel.R); general.SumUp(newPixel.G); general.SumUp(newPixel.B); red.SumUp(newPixel.R); green.SumUp(newPixel.G); blue.SumUp(newPixel.B); } } general.SetLeast(); red.SetLeast(); green.SetLeast(); blue.SetLeast(); ImageData after = new ImageData(newBitmap, service.data.LastData().ID) { data = general, data_A = service.data.LastData().data_A, data_R = red, data_G = green, data_B = blue }; after.SetReady(); service.imageWindow.CloseProgressBar(); return(after); }