VintaSoft Imaging .NET SDK and Plug-ins Discussions
Questions, comments and suggestions concerning VintaSoft Imaging .NET SDK.
Board index < VintaSoft Imaging < VintaSoft Imaging .NET SDK and Plug-ins Discussions
imageViewer1.Images.Add(filename); Vintasoft.Imaging.ImageProcessing.Color.ChangeBrightnessContrastCommand command = new Vintasoft.Imaging.ImageProcessing.Color.ChangeBrightnessContrastCommand(50, 5); command.ExecuteInPlace(imageViewer1.FocusedImage); Vintasoft.Imaging.ImageProcessing.Color.ChangeHueSaturationLuminanceCommand command2 = new Vintasoft.Imaging.ImageProcessing.Color.ChangeHueSaturationLuminanceCommand(0, -100, 0); command2.ExecuteInPlace(imageViewer1.FocusedImage);When I anyhow try to do it with an ImageProcessingPreview object, I can only perform one of the two commands, the other gets lost or not executed. I'm not sure if I miss something or if the current version of the Assembly (4.3.33.1) even possible. The code I have currently looks like this, but the Brightness / Contrast command seems to be not executed:
public ColorEditingDialog(VintasoftImage image, Rectangle processingRectangle) : this()
{
ImageProcessingPreview imgPreview;
imgPreview = new ImageProcessingPreview(previewImageViewer, image, processingRectangle);
ProcessingCommandBase command1 = GetProcessingCommand1(50, 5);
if (command1 != null)
imgPreview.ExecuteProcessing(command1);
ProcessingCommandBase command2 = GetProcessingCommand2(0, -100, 0);
if (command2 != null)
imgPreview.ExecuteProcessing(command2);
}
protected virtual ProcessingCommandBase GetProcessingCommand1(Int32 b, Int32 c)
{
return new Vintasoft.Imaging.ImageProcessing.Color.ChangeBrightnessContrastCommand(b, c);
}
protected virtual ProcessingCommandBase GetProcessingCommand2(Int32 h, Int32 s, Int32 l)
{
return new Vintasoft.Imaging.ImageProcessing.Color.ChangeHueSaturationLuminanceCommand(h, s, l);
}
What I now like to know is, if I do something wrong or if its even possible to do this.public void ExecuteProcessing(ProcessingCommandBase command)
{
if (!_enabled)
return;
// clone preview image
// NEXT CODE LINE HAS LOGICAL MISTAKE
using (VintasoftImage processedImage = new VintasoftImage(_thumbnail.GetAsBitmap(), false))
{
// process image in place
command.ExecuteInPlace(processedImage);
// preview processing image
_imageViewer.Image.SetImage(processedImage);
}
}
You store an original image in the _thumbnail object, you store processed image in the _imageViewer.Image object - these objects are different and images of these objects also are different.public void ExecuteProcessing(ProcessingCommandBase command1, ProcessingCommandBase command2)
{
if (!_enabled)
return;
// clone preview image
using (VintasoftImage processedImage = new VintasoftImage(_thumbnail.GetAsBitmap(), false))
{
// process image in place
command1.ExecuteInPlace(processedImage);
command2.ExecuteInPlace(processedImage);
// preview processing image
_imageViewer.Image.SetImage(processedImage);
}
}
Best regards, Alexander