Leadtools Namespace > RasterImage Class : PaintGamma Property |
public int PaintGamma {get; set;}
'Declaration Public Property PaintGamma As Integer
'Usage Dim instance As RasterImage Dim value As Integer instance.PaintGamma = value value = instance.PaintGamma
public int PaintGamma {get; set;}
get_PaintGamma();
set_PaintGamma(value);
The paint gamma value can be any number greater than 0. The default value is 100.
Because this is an unsigned integer, it is 100 times the actual gamma value. For example, use 235 to set a gamma value of 2.35. Intensity values ideally follow a logarithmic progression, because the eye perceives changes in intensity as being equal when the ratio of change is equal. For example, we would see a change from 0.1 to 0.2 as being equal to a change from 0.2 to 0.4.
Gamma is a standard constant that is used to calculate the progression. For most CRTs the gamma constant is in the range of 2.2 to 2.5.
For more information, refer to Changing Brightness and Contrast.
Public Sub IntensityExample() Dim f As IntensityForm = New IntensityForm() f.ShowDialog() End Sub Private Class IntensityForm : Inherits Form Private viewer As RasterImageViewer Private gammaTrackBar As TrackBar Private contrastTrackBar As TrackBar Private intensityTrackBar As TrackBar Public Sub New() ' Create the controls Size = New Size(800, 600) Dim controlsPanel As Panel = New Panel() controlsPanel.Size = New Size(400, 0) controlsPanel.BorderStyle = BorderStyle.Fixed3D controlsPanel.Dock = DockStyle.Left Dim labelLeft As Integer = 8 Dim y As Integer = 16 Dim trackBarLeft As Integer = 100 Dim gammaLabel As Label = New Label() gammaLabel.Text = "Gamma:" gammaLabel.Location = New Point(labelLeft, y) gammaLabel.AutoSize = True controlsPanel.Controls.Add(gammaLabel) gammaTrackBar = New TrackBar() gammaTrackBar.Minimum = 1 gammaTrackBar.Maximum = 100 gammaTrackBar.TickFrequency = (gammaTrackBar.Maximum - gammaTrackBar.Minimum) \ 10 gammaTrackBar.Location = New Point(trackBarLeft, y) gammaTrackBar.Width = 200 AddHandler gammaTrackBar.Scroll, AddressOf gammaTrackBar_Scroll controlsPanel.Controls.Add(gammaTrackBar) gammaLabel.Top = gammaTrackBar.Top + (gammaTrackBar.Height - gammaLabel.Height) \ 2 y = gammaTrackBar.Bottom + 8 Dim contrastLabel As Label = New Label() contrastLabel.Text = "Contrast:" contrastLabel.Location = New Point(labelLeft, y) contrastLabel.AutoSize = True controlsPanel.Controls.Add(contrastLabel) contrastTrackBar = New TrackBar() contrastTrackBar.Minimum = -1000 contrastTrackBar.Maximum = 1000 contrastTrackBar.TickFrequency = (contrastTrackBar.Maximum - contrastTrackBar.Minimum) \ 10 contrastTrackBar.Location = New Point(trackBarLeft, y) contrastTrackBar.Width = 200 AddHandler contrastTrackBar.Scroll, AddressOf contrastTrackBar_Scroll controlsPanel.Controls.Add(contrastTrackBar) contrastLabel.Top = contrastTrackBar.Top + (contrastTrackBar.Height - contrastLabel.Height) \ 2 y = contrastTrackBar.Bottom + 8 Dim intensityLabel As Label = New Label() intensityLabel.Text = "Intensity:" intensityLabel.Location = New Point(labelLeft, y) intensityLabel.AutoSize = True controlsPanel.Controls.Add(intensityLabel) y = intensityLabel.Bottom + 8 intensityTrackBar = New TrackBar() intensityTrackBar.Minimum = -1000 intensityTrackBar.Maximum = 1000 intensityTrackBar.TickFrequency = (intensityTrackBar.Maximum - intensityTrackBar.Minimum) \ 10 intensityTrackBar.Location = New Point(trackBarLeft, y) intensityTrackBar.Width = 200 AddHandler intensityTrackBar.Scroll, AddressOf intensityTrackBar_Scroll controlsPanel.Controls.Add(intensityTrackBar) intensityLabel.Top = intensityTrackBar.Top + (intensityTrackBar.Height - intensityLabel.Height) \ 2 y = intensityTrackBar.Bottom + 8 Dim defaultButton As Button = New Button() defaultButton.Text = "Default" defaultButton.Location = New Point(labelLeft, y) AddHandler defaultButton.Click, AddressOf defaultButton_Click controlsPanel.Controls.Add(defaultButton) Controls.Add(controlsPanel) viewer = New RasterImageViewer() viewer.Dock = DockStyle.Fill Controls.Add(viewer) viewer.SizeMode = RasterPaintSizeMode.Fit viewer.BringToFront() ' Load the image Dim codecs As RasterCodecs = New RasterCodecs() Dim srcFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp") viewer.Image = codecs.Load(srcFileName) codecs.Dispose() gammaTrackBar.Value = viewer.Image.PaintGamma contrastTrackBar.Value = viewer.Image.PaintContrast intensityTrackBar.Value = viewer.Image.PaintIntensity UpdateValues() End Sub Private Sub UpdateValues() Dim str As String = String.Format("Gamma = {0}, Contrast = {1}, Intensity = {2}", viewer.Image.PaintGamma, viewer.Image.PaintContrast, viewer.Image.PaintIntensity) Text = str End Sub Private Sub gammaTrackBar_Scroll(ByVal sender As Object, ByVal e As EventArgs) Dim tb As TrackBar = CType(IIf(TypeOf sender Is TrackBar, sender, Nothing), TrackBar) viewer.Image.PaintGamma = tb.Value UpdateValues() End Sub Private Sub contrastTrackBar_Scroll(ByVal sender As Object, ByVal e As EventArgs) Dim tb As TrackBar = CType(IIf(TypeOf sender Is TrackBar, sender, Nothing), TrackBar) viewer.Image.PaintContrast = tb.Value UpdateValues() End Sub Private Sub intensityTrackBar_Scroll(ByVal sender As Object, ByVal e As EventArgs) Dim tb As TrackBar = CType(IIf(TypeOf sender Is TrackBar, sender, Nothing), TrackBar) viewer.Image.PaintIntensity = tb.Value UpdateValues() End Sub Private Sub defaultButton_Click(ByVal sender As Object, ByVal e As EventArgs) viewer.Image.PaintGamma = 100 viewer.Image.PaintIntensity = 0 viewer.Image.PaintContrast = 0 gammaTrackBar.Value = viewer.Image.PaintGamma contrastTrackBar.Value = viewer.Image.PaintContrast intensityTrackBar.Value = viewer.Image.PaintIntensity UpdateValues() End Sub End Class Public NotInheritable Class LEAD_VARS Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" End Class
public void IntensityExample() { IntensityForm f = new IntensityForm(); f.ShowDialog(); } class IntensityForm : Form { RasterImageViewer viewer; TrackBar gammaTrackBar; TrackBar contrastTrackBar; TrackBar intensityTrackBar; public IntensityForm() { // Create the controls Size = new Size(800, 600); Panel controlsPanel = new Panel(); controlsPanel.Size = new Size(400, 0); controlsPanel.BorderStyle = BorderStyle.Fixed3D; controlsPanel.Dock = DockStyle.Left; int labelLeft = 8; int y = 16; int trackBarLeft = 100; Label gammaLabel = new Label(); gammaLabel.Text = "Gamma:"; gammaLabel.Location = new Point(labelLeft, y); gammaLabel.AutoSize = true; controlsPanel.Controls.Add(gammaLabel); gammaTrackBar = new TrackBar(); gammaTrackBar.Minimum = 1; gammaTrackBar.Maximum = 100; gammaTrackBar.TickFrequency = (gammaTrackBar.Maximum - gammaTrackBar.Minimum) / 10; gammaTrackBar.Location = new Point(trackBarLeft, y); gammaTrackBar.Width = 200; gammaTrackBar.Scroll += new EventHandler(gammaTrackBar_Scroll); controlsPanel.Controls.Add(gammaTrackBar); gammaLabel.Top = gammaTrackBar.Top + (gammaTrackBar.Height - gammaLabel.Height) / 2; y = gammaTrackBar.Bottom + 8; Label contrastLabel = new Label(); contrastLabel.Text = "Contrast:"; contrastLabel.Location = new Point(labelLeft, y); contrastLabel.AutoSize = true; controlsPanel.Controls.Add(contrastLabel); contrastTrackBar = new TrackBar(); contrastTrackBar.Minimum = -1000; contrastTrackBar.Maximum = 1000; contrastTrackBar.TickFrequency = (contrastTrackBar.Maximum - contrastTrackBar.Minimum) / 10; contrastTrackBar.Location = new Point(trackBarLeft, y); contrastTrackBar.Width = 200; contrastTrackBar.Scroll += new EventHandler(contrastTrackBar_Scroll); controlsPanel.Controls.Add(contrastTrackBar); contrastLabel.Top = contrastTrackBar.Top + (contrastTrackBar.Height - contrastLabel.Height) / 2; y = contrastTrackBar.Bottom + 8; Label intensityLabel = new Label(); intensityLabel.Text = "Intensity:"; intensityLabel.Location = new Point(labelLeft, y); intensityLabel.AutoSize = true; controlsPanel.Controls.Add(intensityLabel); y = intensityLabel.Bottom + 8; intensityTrackBar = new TrackBar(); intensityTrackBar.Minimum = -1000; intensityTrackBar.Maximum = 1000; intensityTrackBar.TickFrequency = (intensityTrackBar.Maximum - intensityTrackBar.Minimum) / 10; intensityTrackBar.Location = new Point(trackBarLeft, y); intensityTrackBar.Width = 200; intensityTrackBar.Scroll += new EventHandler(intensityTrackBar_Scroll); controlsPanel.Controls.Add(intensityTrackBar); intensityLabel.Top = intensityTrackBar.Top + (intensityTrackBar.Height - intensityLabel.Height) / 2; y = intensityTrackBar.Bottom + 8; Button defaultButton = new Button(); defaultButton.Text = "Default"; defaultButton.Location = new Point(labelLeft, y); defaultButton.Click += new EventHandler(defaultButton_Click); controlsPanel.Controls.Add(defaultButton); Controls.Add(controlsPanel); viewer = new RasterImageViewer(); viewer.Dock = DockStyle.Fill; Controls.Add(viewer); viewer.SizeMode = RasterPaintSizeMode.Fit; viewer.BringToFront(); // Load the image RasterCodecs codecs = new RasterCodecs(); string srcFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp"); viewer.Image = codecs.Load(srcFileName); codecs.Dispose(); gammaTrackBar.Value = viewer.Image.PaintGamma; contrastTrackBar.Value = viewer.Image.PaintContrast; intensityTrackBar.Value = viewer.Image.PaintIntensity; UpdateValues(); } void UpdateValues() { string str = string.Format( "Gamma = {0}, Contrast = {1}, Intensity = {2}", viewer.Image.PaintGamma, viewer.Image.PaintContrast, viewer.Image.PaintIntensity); Text = str; } void gammaTrackBar_Scroll(object sender, EventArgs e) { TrackBar tb = sender as TrackBar; viewer.Image.PaintGamma = tb.Value; UpdateValues(); } void contrastTrackBar_Scroll(object sender, EventArgs e) { TrackBar tb = sender as TrackBar; viewer.Image.PaintContrast = tb.Value; UpdateValues(); } void intensityTrackBar_Scroll(object sender, EventArgs e) { TrackBar tb = sender as TrackBar; viewer.Image.PaintIntensity = tb.Value; UpdateValues(); } void defaultButton_Click(object sender, EventArgs e) { viewer.Image.PaintGamma = 100; viewer.Image.PaintIntensity = 0; viewer.Image.PaintContrast = 0; gammaTrackBar.Value = viewer.Image.PaintGamma; contrastTrackBar.Value = viewer.Image.PaintContrast; intensityTrackBar.Value = viewer.Image.PaintIntensity; UpdateValues(); } } static class LEAD_VARS { public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images"; }
Target Platforms: Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2