Lightens or darkens all or part of an image by remapping the pixel values. This function is useful for pre-processing images for the purpose of improving barcode recognition results.
public class LightControlCommand : RasterCommand
Public Class LightControlCommand
Inherits RasterCommand
@interface LTLightControlCommand : LTRasterCommand
public class LightControlCommand extends RasterCommand
public ref class LightControlCommand : public RasterCommand
For an example, see the following figure:
The following figure shows the same image, after the effect has been applied:
To obtain this effect, the following settings were used with the method: LowerAverage = 100 Average = 255 UpperAverage = 255 Type = LightControlCommandType.Yuv
This command does not support 32-bit grayscale images.
For more information, refer to Changing Brightness and Contrast. For more information, refer to Correcting Colors.
Run the LightControlCommand on an image.
using Leadtools;
using Leadtools.Codecs;
using Leadtools.ImageProcessing.Color;
public void LightControlCommandExample()
{
// Load an image
RasterCodecs codecs = new RasterCodecs();
codecs.ThrowExceptionsOnInvalidImages = true;
RasterImage image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "dirty_barcode.jpg"));
// Prepare the command
int[] LowerAverage = new int[3];
int[] Average = new int[3];
int[] UpperAverage = new int[3];
LowerAverage[0] = 100; //for blue, gray or yuv
LowerAverage[1] = 120; //for green
LowerAverage[2] = 80; //for red
Average[0] = 210; //for blue, gray or yuv
Average[1] = 210; //for green
Average[2] = 210; //for red
UpperAverage[0] = 255; //for blue, gray or yuv
UpperAverage[1] = 255; //for green
UpperAverage[2] = 255; //for red
LightControlCommand command = new LightControlCommand(LowerAverage, Average, UpperAverage, LightControlCommandType.Yuv);
// change the lightness of the image.
command.Run(image);
codecs.Save(image, Path.Combine(LEAD_VARS.ImagesDir, "Result.jpg"), RasterImageFormat.Jpeg, 24);
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
}
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.ImageProcessing.Color
Public Sub LightControlCommandExample()
Dim codecs As New RasterCodecs()
codecs.ThrowExceptionsOnInvalidImages = True
Dim leadImage As RasterImage = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "dirty_barcode.jpg"))
' Prepare the command
Dim LowerAverage() As Integer
ReDim LowerAverage(2)
Dim Average() As Integer
ReDim Average(2)
Dim UpperAverage() As Integer
ReDim UpperAverage(2)
LowerAverage(0) = 100 'for blue, gray or yuv
LowerAverage(1) = 120 'for green
LowerAverage(2) = 80 'for red
Average(0) = 210 'for blue, gray or yuv
Average(1) = 210 'for green
Average(2) = 210 'for red
UpperAverage(0) = 255 'for blue, gray or yuv
UpperAverage(1) = 255 'for green
UpperAverage(2) = 255 'for red
Dim command As LightControlCommand = New LightControlCommand(LowerAverage, Average, UpperAverage, LightControlCommandType.Yuv)
' change the lightness of the image.
command.Run(leadImage)
codecs.Save(leadImage, Path.Combine(LEAD_VARS.ImagesDir, "Result.jpg"), RasterImageFormat.Jpeg, 24)
End Sub
Public NotInheritable Class LEAD_VARS
Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
End Class
c#[Silverlight C# Example]
using Leadtools;
using Leadtools.Codecs;
using Leadtools.ImageProcessing.Color;
using Leadtools.Examples;
public void LightControlCommandExample(RasterImage image, Stream outStream)
{
// Prepare the command
int[] LowerAverage = new int[3];
int[] Average = new int[3];
int[] UpperAverage = new int[3];
LowerAverage[0] = 100; //for blue, gray or yuv
LowerAverage[1] = 120; //for green
LowerAverage[2] = 80; //for red
Average[0] = 150; //for blue, gray or yuv
Average[1] = 140; //for green
Average[2] = 128; //for red
UpperAverage[0] = 190; //for blue, gray or yuv
UpperAverage[1] = 200; //for green
UpperAverage[2] = 220; //for red
LightControlCommand command = new LightControlCommand(LowerAverage, Average, UpperAverage, LightControlCommandType.Yuv);
// change the lightness of the image.
command.Run(image);
// Save result image
RasterCodecs codecs = new RasterCodecs();
codecs.Save(image, outStream, RasterImageFormat.Jpeg, 24);
image.Dispose();
}
vb[Silverlight VB Example]
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.ImageProcessing.Color
Public Sub LightControlCommandExample(ByVal image As RasterImage, ByVal outStream As Stream)
' Prepare the command
Dim LowerAverage As Integer() = New Integer(2) {}
Dim Average As Integer() = New Integer(2) {}
Dim UpperAverage As Integer() = New Integer(2) {}
LowerAverage(0) = 100 'for blue, gray or yuv
LowerAverage(1) = 120 'for green
LowerAverage(2) = 80 'for red
Average(0) = 150 'for blue, gray or yuv
Average(1) = 140 'for green
Average(2) = 128 'for red
UpperAverage(0) = 190 'for blue, gray or yuv
UpperAverage(1) = 200 'for green
UpperAverage(2) = 220 'for red
Dim command As LightControlCommand = New LightControlCommand(LowerAverage, Average, UpperAverage, LightControlCommandType.Yuv)
' change the lightness of the image.
command.Run(image)
' Save result image
Dim codecs As RasterCodecs = New RasterCodecs()
codecs.Save(image, outStream, RasterImageFormat.Jpeg, 24)
image.Dispose()
End Sub
Leadtools.ImageProcessing.Color Namespace
Leadtools.ImageProcessing.Effects.SharpenCommand
Leadtools.ImageProcessing.Effects.EmbossCommand
Leadtools.ImageProcessing.Effects.AverageCommand
Leadtools.ImageProcessing.Core.MedianCommand
Leadtools.ImageProcessing.Effects.AddNoiseCommand
Leadtools.ImageProcessing.Effects.SpatialFilterCommand
Leadtools.ImageProcessing.Effects.BinaryFilterCommand
Leadtools.ImageProcessing.Core.MaximumCommand
Leadtools.ImageProcessing.Core.MinimumCommand
Leadtools.ImageProcessing.Effects.OilifyCommand
Leadtools.ImageProcessing.Core.WindowLevelCommand
Leadtools.ImageProcessing.Effects.MosaicCommand
Leadtools.ImageProcessing.SpecialEffects.PixelateCommand
Leadtools.ImageProcessing.Core.CorrelationListCommand
GrayScaleToDuotoneCommand Class
GrayScaleToMultitoneCommand Class
Leadtools.ImageProcessing.Core.HolePunchRemoveCommand
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document