Grafikunterschiede Lazarus und Xcode
-
- 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
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
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
-
- Beiträge: 3444
- 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
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
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
-
- Beiträge: 6079
- 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
Zeig doch mal n beipiel bitte
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
- 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
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:

Xcode:

So sieht es auch bei anderen (bunteren Bildern aus..)
Danke fürs Ansehen,
Fred
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:

Xcode:

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)
Grund: Bilder bitte direkt in den Beitrag laden (oder als Anhang hochladen)
-
- Beiträge: 6079
- 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
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 ?
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/
-
- 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
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/
Rotes, Transparentes Image (.png) auf Gelben hintergrund.
http://imageshack.us/photo/my-images/191/unbenannt2ti.png/
Code: Alles auswählen
Signatur := nil;
-
- Beiträge: 3444
- 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
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 erzeugenChristian hat geschrieben:Das hat nix mit resampling zu tun, dacht ich mir schon.
Ist das sicher ? Scheint mir wenig sinnvoll. Wenn es so ist sollte es wohl verbessert werden.Christian hat geschrieben: Lazarus zeigt im Image nur 1 bit Transparenz bei pngś o.ä.
-Michael
-
- Beiträge: 3444
- 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
Dachte ich mir schonMAC hat geschrieben:Also bei mir funktioniert TImage mit Transparenz, ohne Probleme:

-Michael
-
- 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
Pardon, was bedeutet "1bit Transparenz" ?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 ?
Gruss,
Fred
-
- 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
Das bedeutet, entweder ist etwas komplett Transparent / Durchsichtik, oder überhauptnicht Transparent /Durchsichtig.MoinFred hat geschrieben: Pardon, was bedeutet "1bit Transparenz" ?
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

Code: Alles auswählen
Signatur := nil;
-
- Beiträge: 3444
- 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
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 deckendMoinFred hat geschrieben:Pardon, was bedeutet "1bit Transparenz" ?
-Michael
-
- 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
Vielen Dank für die vielen erhellenden Antworten.mschnell hat geschrieben: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 deckendMoinFred hat geschrieben:Pardon, was bedeutet "1bit Transparenz" ?
-Michael
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
- m.fuchs
- Lazarusforum e. V.
- Beiträge: 2806
- Registriert: Fr 22. Sep 2006, 19:32
- OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
- CPU-Target: x86, x64, arm
- Wohnort: Berlin
- Kontaktdaten:
Re: Grafikunterschiede Lazarus und Xcode
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
-
- 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
Vielen Dank für den Link. Ich habe mir das angeschaut und was die Alphawerte angeht, sieht das auch gut aus.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.
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