Grafikunterschiede Lazarus und Xcode

Antworten
MoinFred
Beiträge: 10
Registriert: Sa 27. Okt 2012, 20:59
OS, Lazarus, FPC: Mac OSX 10.6.8/10.7 ff / Ubuntu Linux /Lazarus 1.0,FPC 2.6.0 i386-Darwin-carbon
CPU-Target: xxBit

Grafikunterschiede Lazarus und Xcode

Beitrag von MoinFred »

Hallo,
ich habe folgendes Problem:
Wenn ich dasselbe Bild (PNG-Datei 172x272 schwarz weiss) in eine Lazarus TImage ( 60x60 proportional) lade,
ist die Grafikqualität deutlich schlechter/anders als beim Laden in die äquivalente XCode Komponente.
Dadurch sehen meine Xcode-Programme wesentlich besser aus als die Lazarus-Pendants. Das ist doch blöd.
Gibt es dafür einen Grund?

Vielen Dank für etwaige Hilfe oder Anteilnahme,
Fred

Lazarus 1.0, FPC 2.6.0, i386-darwin-carbon
Xcode 3.2.6

mschnell
Beiträge: 3417
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Grafikunterschiede Lazarus und Xcode

Beitrag von mschnell »

Wenn die Auflösung verkleinert wird, muss ein entsprechender Resample-Algorithmus angewendet werden. Keine Ahnung, was des Standard-Resample-Algorithmus in Lazarus und XCode ist.

Welcher der "bester" Algorithmus ist, hängt stark vom Bild-Inhalt und vom Geschmack ab. Bei Photo ist i.a. "Lanczos" ziemlich gut, für Icons, Schriften und ähnliches ist es oft gut erst durch Unschärfen die Kanten zu glätten und dann die Auflösung zu verringern. Sehr schön ist auch das Bildformat JPEG2000 (*.JP2) dieser Kompressions-Algorithmus speichert den Bildinhalt ohne definierte Auflösung und regeneriert die Pixel erst bei der Darstellung.

-Michael

Christian
Lazarusforum e. V.
Beiträge: 6092
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Grafikunterschiede Lazarus und Xcode

Beitrag von Christian »

Zeig doch mal n beipiel bitte
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

MoinFred
Beiträge: 10
Registriert: Sa 27. Okt 2012, 20:59
OS, Lazarus, FPC: Mac OSX 10.6.8/10.7 ff / Ubuntu Linux /Lazarus 1.0,FPC 2.6.0 i386-Darwin-carbon
CPU-Target: xxBit

Re: Grafikunterschiede Lazarus und Xcode

Beitrag von MoinFred »

Hallo,
Danke für die Antwort. Das mit der Resample-Berechnung habe ich mir schon gedacht. Bei der Bildquelle ist nur leider meine Einflussmöglichkeit beschränkt...
Die Komponente wird vom Anwender "befüllt" und landet in der Datenbank. Und aussehen tut es dann arg unterschiedlich.
Ich habe mal jeweils ein Bildschirmfoto gemacht und auf ImageShack geladen (der Unterschied wird schon deutlich, auch wenn es offensichtlich nochmals "bearbeitet" wird.):
Lazarus:
Bild

Xcode:
Bild

So sieht es auch bei anderen (bunteren Bildern aus..)
Danke fürs Ansehen,
Fred
Zuletzt geändert von Lori am So 28. Okt 2012, 17:00, insgesamt 1-mal geändert.
Grund: Bilder bitte direkt in den Beitrag laden (oder als Anhang hochladen)

Christian
Lazarusforum e. V.
Beiträge: 6092
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Grafikunterschiede Lazarus und Xcode

Beitrag von Christian »

Das hat nix mit resampling zu tun, dacht ich mir schon. Lazarus zeigt im Image nur 1 bit Transparenz bei pngś o.ä.
Es gab glaub ich auf der Mailingliste mal ne debatte dazu.
Weiss jemand eigentlich warum das so ist ?
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

MAC
Beiträge: 770
Registriert: Sa 21. Feb 2009, 13:46
OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2)
CPU-Target: 32Bit

Re: Grafikunterschiede Lazarus und Xcode

Beitrag von MAC »

Also bei mir funktioniert TImage mit Transparenz, ohne Probleme:

Rotes, Transparentes Image (.png) auf Gelben hintergrund.
http://imageshack.us/photo/my-images/191/unbenannt2ti.png/

Code: Alles auswählen

Signatur := nil;

mschnell
Beiträge: 3417
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Grafikunterschiede Lazarus und Xcode

Beitrag von mschnell »

Christian hat geschrieben:Das hat nix mit resampling zu tun, dacht ich mir schon.

Das ist nicht gesagt. Das Ursprungsbild ist b/w Hartkontrast. Ein "nearest neighborhood" Algorithmus resampelt das auf das gezeigte Ergebnis. Ein komplexerer Algorithmus (z.B. erst unschärfen, dann resampeln) kann das Ergebnis von XCode erzeugen
Christian hat geschrieben:Lazarus zeigt im Image nur 1 bit Transparenz bei pngś o.ä.

Ist das sicher ? Scheint mir wenig sinnvoll. Wenn es so ist sollte es wohl verbessert werden.
-Michael

mschnell
Beiträge: 3417
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Grafikunterschiede Lazarus und Xcode

Beitrag von mschnell »

MAC hat geschrieben:Also bei mir funktioniert TImage mit Transparenz, ohne Probleme:

Dachte ich mir schon :twisted:

-Michael

MoinFred
Beiträge: 10
Registriert: Sa 27. Okt 2012, 20:59
OS, Lazarus, FPC: Mac OSX 10.6.8/10.7 ff / Ubuntu Linux /Lazarus 1.0,FPC 2.6.0 i386-Darwin-carbon
CPU-Target: xxBit

Re: Grafikunterschiede Lazarus und Xcode

Beitrag von MoinFred »

Christian hat geschrieben:Das hat nix mit resampling zu tun, dacht ich mir schon. Lazarus zeigt im Image nur 1 bit Transparenz bei pngś o.ä.
Es gab glaub ich auf der Mailingliste mal ne debatte dazu.
Weiss jemand eigentlich warum das so ist ?


Pardon, was bedeutet "1bit Transparenz" ?
Gruss,
Fred

MAC
Beiträge: 770
Registriert: Sa 21. Feb 2009, 13:46
OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2)
CPU-Target: 32Bit

Re: Grafikunterschiede Lazarus und Xcode

Beitrag von MAC »

MoinFred hat geschrieben:Pardon, was bedeutet "1bit Transparenz" ?


Das bedeutet, entweder ist etwas komplett Transparent / Durchsichtik, oder überhauptnicht Transparent /Durchsichtig.
Es gibt nur 1 bit, also entweder wahr oder falsch.
Normalerweise (im alltag gebräuchlich) werden 32 bit für eine Farbe genommen. Dabei gibt es 8 bit für den rotwert, 8 für den grün und 8 für den blauwert sowie 8 bit für die transparenz.
D.h. es ist normalerweise auch möglich das etwas "teil-durchsichtig" ist (wie z.B: ein Kischenfenster, welches irgendeine farbe hat, aber trotzdem durchsichtig ist. Oder ein buntes McDonald's Coca Cola glas (Schleichwerbung :D )).

Code: Alles auswählen

Signatur := nil;

mschnell
Beiträge: 3417
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Grafikunterschiede Lazarus und Xcode

Beitrag von mschnell »

MoinFred hat geschrieben:Pardon, was bedeutet "1bit Transparenz" ?

Diverse Grafik-Formate (u.a. auch png) bieten pro Pixel einen "Alpha-Channel" für den Transparenz-Grad, zusätzlich zu den (meist drei) Farb-Kanälen. Meist hat der Alpha-Wert genauso viele Bits wie die Farb-Werte (meist 8 ). Bei bestimmten Formaten (z.B. GIF mit Lookup-Table) hat der Alpha-Wert nur "ein Bit", also zwei Möglichkeiten:voll durchsichtig oder komplett deckend

-Michael

MoinFred
Beiträge: 10
Registriert: Sa 27. Okt 2012, 20:59
OS, Lazarus, FPC: Mac OSX 10.6.8/10.7 ff / Ubuntu Linux /Lazarus 1.0,FPC 2.6.0 i386-Darwin-carbon
CPU-Target: xxBit

Re: Grafikunterschiede Lazarus und Xcode

Beitrag von MoinFred »

mschnell hat geschrieben:
MoinFred hat geschrieben:Pardon, was bedeutet "1bit Transparenz" ?

Diverse Grafik-Formate (u.a. auch png) bieten pro Pixel einen "Alpha-Channel" für den Transparenz-Grad, zusätzlich zu den (meist drei) Farb-Kanälen. Meist hat der Alpha-Wert genauso viele Bits wie die Farb-Werte (meist 8 ). Bei bestimmten Formaten (z.B. GIF mit Lookup-Table) hat der Alpha-Wert nur "ein Bit", also zwei Möglichkeiten:voll durchsichtig oder komplett deckend

-Michael


Vielen Dank für die vielen erhellenden Antworten.
So habe ich mir das auch gedacht, war mir aber nicht sicher. Also, ich rekapituliere:
Das "schlechtere" Darstellen resultiert aus einem zumindest "anderem" resample-Mechanismus der Lazarus-Komponente TImage, da es sich in diesem speziellen Fall um ein schwarz/weiss - Bild handelt. Aber wie gesagt, bei den bunten ist es ebenso.
D.h. ich kann dem nur entgegenwirken, indem ich auf andere Komponenten ausweiche.... Das macht es allerdings etwas mühsam,
die OS-Diversifikation einzufangen. Schade, schade. Das bedeutet ja in der Konsequenz, dass ich mich zum Grafikprogrammierer (Kantenglätter, Farbenrechner, Pixelanalyser usw. ) erweitern müsste, um zu einem ähnlichen Resultat zu kommen, wie die Apple-Jungs mir das bereitstellen. Dafür bin ich zu alt! Man müsste das mal mit einer Windows-Variante durchspielen (Delphi o.ä.). Ich könnte mir aber denken, dass die das auch runder flutschen lassen. Aber dafür werde ich mir kein Windows anschaffen.
Gibt es denn diesbezüglich Komponenten die es für Linux (Ubuntu) und Mac und Windows gibt, die das gleichermaßen hinbekommen? (Ich habe da leider keine Ahnung.)

Nochmals Danke, dass Ihr Euch mit meinem Problem beschäftigt,
mfG,
Fred

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2281
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.8, FPC 3.0.4)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Grafikunterschiede Lazarus und Xcode

Beitrag von m.fuchs »

Die BGRAControls könnten dir helfen: http://wiki.freepascal.org/BGRAControls. Die benutze ich um das gleiche Problem unter GTK zu umgehen.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

MoinFred
Beiträge: 10
Registriert: Sa 27. Okt 2012, 20:59
OS, Lazarus, FPC: Mac OSX 10.6.8/10.7 ff / Ubuntu Linux /Lazarus 1.0,FPC 2.6.0 i386-Darwin-carbon
CPU-Target: xxBit

Re: Grafikunterschiede Lazarus und Xcode

Beitrag von MoinFred »

m.fuchs hat geschrieben:Die BGRAControls könnten dir helfen: http://wiki.freepascal.org/BGRAControls. Die benutze ich um das gleiche Problem unter GTK zu umgehen.


Vielen Dank für den Link. Ich habe mir das angeschaut und was die Alphawerte angeht, sieht das auch gut aus.
Aber mein o.b. Problem kann ich damit nicht auf einfache Art lösen. Jedenfalls nicht, dass es sich mir offenbarte...
Trotzdessen vielen Dank,
Fred

Antworten