Filter-Anwendung ändern bei gif (256 Grauwerte)

14/08/2008 - 16:18 von WolfgangH | Report spam
Hallo Leute,
ich habe gif-Bilddateien mit 256 Grauwerten.
Diese sollen nur in der Darstellung abgeàndert werden können.

mein Versuch (s. unten) hat nach ca. 2/3 der Schleife einen ungültigen
Speicherzugriff. (bei 24bit Farbe kein Problem)

Frage:
- falsches PixelFormat verwendet?
- wie würde man die Transparenz veràndern?

Danke schon mal für eure Hilfe
Wolfgang


public static void Contrast(Bitmap bmp, Single Value)
{
Byte[] ar = new Byte[256];
Value = 1 + Value / 100;

for (int i = 0; i < 256; i++)
{
int grauwert = (int)((i - 128) * Value) + 128;
if(grauwert>255)
grauwert%5;
if(grauwert<0)
grauwert=0;
ar[i]=grauwert;
}
BitmapData bmpData;
bmpData = bmp.LockBits(new Rectangle(0, 0, bmp.Width,
bmp.Height), ImageLockMode.ReadWrite, PixelFormat.Format8bppIndexed);
unsafe
{
byte* ptr = (byte*)bmpData.Scan0;
int size = bmp.Height * bmp.Width;
for (int i = 0; i < size; i++)
{
ptr[0] = ar[ptr[0]];
ptr[1] = ar[ptr[1]];
ptr[2] = ar[ptr[2]];
ptr += 4;
}
}
bmp.UnlockBits(bmpData);
}
 

Lesen sie die antworten

#1 Frank Dzaebel
14/08/2008 - 20:26 | Warnen spam
Hallo Wolfgang,

ich habe gif-Bilddateien mit 256 Grauwerten.
Diese sollen nur in der Darstellung abgeàndert werden können.
mein Versuch (s. unten) hat nach ca. 2/3 der Schleife einen ungültigen
Speicherzugriff. (bei 24bit Farbe kein Problem)



Hier ggf. ein paar Hintergrundinfos:

[Wie Speichern einer GIF-Datei mit einer neuen Farbentabelle, indem Visual
C# verwendet]
http://support.microsoft.com/kb/319061


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen