QImage

Alles rund um die Programmierung mit Qt
Antworten
DevilsDaughter
Beiträge: 27
Registriert: 21. März 2006 10:01

QImage

Beitrag von DevilsDaughter »

Hi,
wie kann ich ein farbiges Image in ein graues umwandeln?
Geht das in etwa so???

Code: Alles auswählen

if (theScaledImage -> numColors ()) {    
for(uint i = 0; i < 256; ++i)
theScaledImage -> setColor(i, qRgb(i,i,i));                
}
muss eine funktion: MakeAllGray() ersetzen:

converts a color image to a gray scale image
Conversion is done using the following formula:
out_color = red * .30 + green * .59 + blue * .11;


Danke,

Lg Devil's Daughter
Goos
Beiträge: 360
Registriert: 17. August 2004 10:10
Wohnort: Black Forest

Beitrag von Goos »

Jo zum Teil geht das so in der Art und die Konvertierung nach 8-bit dann halt ueber die out_color = red * .30 + green * .59 + blue * .11; Formel wuerd ich mal sagen.

Goos
DevilsDaughter
Beiträge: 27
Registriert: 21. März 2006 10:01

Re:

Beitrag von DevilsDaughter »

Und wie würde das genau aussehen...mit der 8bit konvertierung??

Danke!!
Goos
Beiträge: 360
Registriert: 17. August 2004 10:10
Wohnort: Black Forest

Beitrag von Goos »

Na so wie du beschrieben hast.
out_color = red * .30 + green * .59 + blue * .11;
und das dann wohl fuer jedes Pixel.
So reduzierst die 24-bit Farben dann auf 8-bit Grauwerte, also aus 3 mach eins :D

Ist in meinen Augen die einzige Moeglichkeit um die von dir in der Formel genannten Faktoren umzusetzen.
(Falls das so nicht gehen sollte, oder zu langsam ist (hoert sich naemlich schon irgendwie nach Performancefresser an ....muss man sich halt nochmal Gedanken machen)

Goos
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re:

Beitrag von Christian81 »

DevilsDaughter hat geschrieben:Und wie würde das genau aussehen...mit der 8bit konvertierung??
http://doc.trolltech.com/4.1/qimage.htm ... rtToFormat
Und dann deine eigene Graukonvertierung durchführen wie du oben beschrieben hast. Nur das ich nicht '<256' sondern '< numColors()' nehmen würde...
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
DevilsDaughter
Beiträge: 27
Registriert: 21. März 2006 10:01

Re:

Beitrag von DevilsDaughter »

also irgendwie steh ich auf der leitung....

kann mir dass ganze nicht wirklich vorstellen....
habs jetzt schon probiert...aber das funktioniert irgendwie nicht...
Goos
Beiträge: 360
Registriert: 17. August 2004 10:10
Wohnort: Black Forest

Beitrag von Goos »

Was hast denn probiert?
Meine Kristallkugel wills mir nicht so recht zeigen ;)

Goos
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Muss man euch alles vorkauen? ;)

Code: Alles auswählen

QImage im, im2;
if (!im.load("wieauchimmer.jpg"))
  return false;
im2 = im.convertToFormat(QImage::Format_Indexed8);
if(im2.isNull())
  return false;
for(int i = 0; i < im2.numColors(); i++) {
  QRgb rgb = im2.color(i);
  int gray = qRed(rgb) * .30 + qGreen(rgb) * .59 + qBlue(rgb) * .11;
  im2.setColor(i,qRgb(gray,gray,gray));
}
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
DevilsDaughter
Beiträge: 27
Registriert: 21. März 2006 10:01

Re:

Beitrag von DevilsDaughter »

Danke sehr nett!


*gg* ja mir zumindest manchmal schon :roll:
lepsai
Beiträge: 573
Registriert: 14. September 2004 21:33
Wohnort: Berlin
Kontaktdaten:

Beitrag von lepsai »

DevilsDaughter - geiler Nick.... :)
Antworten