Gamma-Error beim Bilder skalieren

Hier kann alles mögliche diskutiert werden. Themen zu Purebasic sind hier erwünscht.
Flames und Spam kommen ungefragt in den Mülleimer.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8675
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Gamma-Error beim Bilder skalieren

Beitrag von NicTheQuick »

Hi Leute,

ich habe gerade festgestellt, dass Purebasic auch zu den "Programmen" gehört, die Bilder falsch verkleinern bzw. vergrößern.
Darauf aufmerksam hat mich dabei dieser Artikel gemacht: Gamma error in picture scaling

Jetzt weiß ich nicht genau, ob PureBasic diesen Fehler z.B. in der Windows-Version nicht hat. Aber interessieren tut es mich auf jeden Fall. Ich habe den Fehler jedenfalls hier unter Linux. Aber ich war auch sehr überrascht, dass der Fehler sogar in GIMP noch nicht behoben ist. Wenn PureBasic nicht seine eigenen Resize-Funktionen nutzt, sondern die des OS, dann sollte es z.B. bei Mac OS X keine Probleme geben.

Hier schon mal ein kleiner Testcode. Das passende Bild findet ihr in diesem Zip: gamma_dalai_lama_gray.zip (siehe auch den Link oben).

Code: Alles auswählen

file.s = "/home/nicolas/tmp/pb/gamma_dalai_lama_gray" ;ohne .jpg

UseJPEGImageDecoder()
UseJPEGImageEncoder()

If LoadImage(0, file + ".jpg")
	width = ImageWidth(0) / 2
	height = ImageHeight(0) / 2
	ResizeImage(0, width, height)
	SaveImage(0, file + "_half.jpg", #PB_ImagePlugin_JPEG, 9)
	FreeImage(0)
EndIf
Wenn eure Bild nach dem Skalieren grau ist, dann macht Purebasic das Skalieren falsch, ansonsten richtig.

Ich empfehle euch auf jeden Fall auch den Artikel oben, denn der erklärt sehr genau, warum das alles so ist, wie es ist, und vor allem, was anscheinend leider viele falsch machen.
Bild
c4s
Beiträge: 1235
Registriert: 19.09.2007 22:18

Re: Gamma-Error beim Bilder skalieren

Beitrag von c4s »

Ja, vor nahezu 4 Jahren hatte ich dazu mal im englischen Forum einen Bug-Report geschrieben: ResizeImage() - No gamma error
"Menschenskinder, das Niveau dieses Forums singt schon wieder!" — GronkhLP ||| "ich hogffe ihr könnt den fehle endecken" — Marvin133 ||| "Ideoten gibts ..." — computerfreak ||| "Jup, danke. Gruss" — funkheld
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8675
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: Gamma-Error beim Bilder skalieren

Beitrag von NicTheQuick »

Ah, cool. Da hab ich noch nicht nachgeschaut. Hab grad mal ein +1 drunter gesetzt. Fertige Algorithmen gibt es ja dafür schon. Und viel langsamer als die normalen sind die ja auch nicht. Deswegen sollte eine Implementieren kein großes Problem darstellen.
Bild
Benutzeravatar
alter Mann
Beiträge: 201
Registriert: 29.08.2008 09:13
Wohnort: hinterm Mond

Re: Gamma-Error beim Bilder skalieren

Beitrag von alter Mann »

graues Bild mit Win8 PB32
Win11 64Bit / PB 6.0
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3857
Registriert: 13.09.2004 17:48
Kontaktdaten:

Re: Gamma-Error beim Bilder skalieren

Beitrag von bobobo »

#PB_Image_Raw ist eine eher hässliche Lösung, aber Scheisse (hier das komisch gerasterte Bild vom Lama)
kann man eh nicht gut polieren.
‮pb aktuell5.7 - windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8675
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: Gamma-Error beim Bilder skalieren

Beitrag von NicTheQuick »

Falsch ist das Resizing trotzdem. Egal wie scheiße du das Bild vom Lama findest. Als spar dir deine komischen Argumente doch einfach. Das Problem wirkt sich auch auf normale Bilder aus wie du sehen wirst, wenn du dir den Artikel mal durchliest.
Bild
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3857
Registriert: 13.09.2004 17:48
Kontaktdaten:

Re: Gamma-Error beim Bilder skalieren

Beitrag von bobobo »

Es ist mitnichten falsch, genauso falsch wie die Behauptung ich hätte den Artikel nicht vor dem Posten gelesen.
Bilderverkleinern ist immer verlustbehaftet.
Und im Beispielbild ist der eigentliche Bildinhalt eben grau ! Wenn man das Bild vom Lama mal stark vergrößert
anschaut, sieht man, dass neben einem Pixel immer ein Pixel in nahezu der Komplementärfarbe sitzt.
Die Nase des Lama auf dem Bild besteht aus knallgrünen und magentafarbenen Pixeln. Das Bild farblich invertiert sieht aus wie das Original.
Sowas verkleinert ergibt eben was eher Graues. Und soweit ist es vollkommen verständlich, dass ein
"normales" Verkleinern dieses Bildes eben ein graues Bild ergibt.
Dass es Möglichkeiten gibt, den Effekt für so ein Bild zu umgehen mit Hilfe der im Artikel erwähnten
Gammatrickserei ist ja nett aber eigentlich verfälscht es genauso den Bildinhalt wie das normale Verkleinern.
Mir könnte ja dann z.B. das Raster der Komplementärfarben hinterher fehlen.
‮pb aktuell5.7 - windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Antworten