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
Your email has been sent to support! Someone should be in touch! If your matter is urgent please come back into chat.
Chat Hours:
Monday - Friday, 8:30am to 6pm ET
Thank you for your feedback!
Please fill out the form again to start a new chat.
All agents are currently offline.
Chat Hours:
Monday - Friday
8:30AM - 6PM EST
To contact us please fill out this form and we will contact you via email.