Aurigma Forums
»
Graphics Mill
»
Discussions – Graphics Mill
»
Howto change only one special color in one Selection?
Rank: Member
Groups: Guest
Joined: 6/11/2005(UTC) Posts: 1
|
Hello everybody, is there a possibilty to change only one special color (e.g. red tones) in one Selection of an image? For example to correct red eyes ... Or is such a implementation planned? greets, André
|
|
|
|
Rank: Advanced Member
Groups: Guest
Joined: 8/3/2003(UTC) Posts: 1,070
Thanks: 1 times Was thanked: 12 time(s) in 12 post(s)
|
Hello, You have two different ways to change specified channel of bitmap. The first one is to apply ChannelBalance transformation, the following code snippet extends values of red channel of the specified bitmap region: Code:
Aurigma.GraphicsMill.Bitmap bitmap = new Aurigma.GraphicsMill.Bitmap(@"c:/Rgb24.jpg");
Aurigma.GraphicsMill.BitmapData bitmapData = bitmap.LockBits(100, 100, 100, 100);
try
{
Aurigma.GraphicsMill.Transforms.ChannelBalance transform = new Aurigma.GraphicsMill.Transforms.ChannelBalance();
transform.Levels = new float[] {0.0f, 0.0f, -0.5f};
transform.ApplyTransform(bitmapData);
}
finally
{
bitmap.UnlockBits(bitmapData);
}
bitmap.Save(@"c:\1.jpg");
The second one is to manilulate channel values by hand. The following code snippet extends values of red channel of the specified bitmap region too: Code:
Aurigma.GraphicsMill.Bitmap bitmap = new Aurigma.GraphicsMill.Bitmap(@"c:/Rgb24.jpg");
Aurigma.GraphicsMill.BitmapData bitmapData = bitmap.LockBits(100, 100, 100, 100);
try
{
unsafe
{
int stride = bitmapData.Stride;
byte *values = (byte *)bitmapData.Scan0.ToPointer();
for(int i = 0; i < bitmapData.Height; i++)
{
byte *scanline = values + i * stride;
for(int j = 0; j < bitmapData.Width; j++)
{
int channel = scanline[2];
channel += 127;
if(channel > 255)
channel = 255;
scanline[2] = (byte)channel;
scanline += bitmapData.BitsPerPixel / 8;
}
}
}
}
finally
{
bitmap.UnlockBits(bitmapData);
}
bitmap.Save(@"c:\2.jpg");
By the way we have implemented plugin for Graphics Mill for .NET for red eye removal. If you are interested in this software, please, contact us by email sales@aurigma.com. If you have some more questions, feel free to contact us. Edited by user 17 years ago
| Reason: Not specified |
|
|
|
|
Aurigma Forums
»
Graphics Mill
»
Discussions – Graphics Mill
»
Howto change only one special color in one Selection?
Forum Jump
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.