View previous topic :: View next topic |
Author |
Message |
manuels Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
![](images/avatars/106271246545d319130201e.gif)
Joined: 22 Nov 2003 Posts: 2146 Location: Europe
|
Posted: Tue Mar 25, 2008 11:32 pm Post subject: Warum "resizen" Browser Bilder so häßlich |
|
|
Hallo zusammen,
ich frage mich gerade warum Bilder, die in Webbrowsern nicht in ihrer nativen Größe angezeigt werden immer "so häßlich" angezeigt werden.
Wenn man die Größe eines Bildes in GIMP o.ä. ändert sieht es 100x besser aus.
Warum implementieren Mozilla, MS & co keine "schönen" Algorithmen dafür? An der Rechenzeit kann es doch eigentlich nicht liegen, oder?
Geht mir gerade nur so durch den Kopf und ich kann beim besten Willen keinen Grund finden - ihr vielleicht?
Tschö mit ö
Manuel _________________ Build your own live cd with catalyst 2.0! |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
misterjack Veteran
![Veteran Veteran](/images/ranks/rank_rect_5_vet.gif)
![](images/avatars/1830638973416002505a3eb.jpg)
Joined: 03 Oct 2004 Posts: 1657
|
Posted: Tue Mar 25, 2008 11:56 pm Post subject: Re: Warum "resizen" Browser Bilder so häßlich |
|
|
manuels wrote: | An der Rechenzeit kann es doch eigentlich nicht liegen, oder? |
Da hast du den wunden Punkt getroffen. Bei einem einzelnen Bild wird man es eher nicht merken, jedoch bestehen manche Seiten aus Zig-Bildern, die womöglich auch nichtmal in Originalgröße angezeigt, sondern vom Browser resized (durch HTML vorgegeben) werden müssen. In Eye Of Gnome ein wenig das Mausrad bewegen (= resizen), bringt meine CPU (3800+) auf >40%. _________________ „Meine Meinung steht fest! Bitte verwirren Sie mich nicht mit Tatsachen.“ |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
schachti Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
![](images/avatars/17240378884464519a52d60.jpg)
Joined: 28 Jul 2003 Posts: 3765 Location: Gifhorn, Germany
|
Posted: Wed Mar 26, 2008 7:28 am Post subject: |
|
|
Außerdem soll es ja auch Anwender mit älteren Rechnern geben - wenn man denen einen aufwendigen Algorithmus vorsetzt, warten die zwei Minuten, bevor die Website dargestellt wird. ![Wink :wink:](images/smiles/icon_wink.gif) _________________ Never argue with an idiot. He brings you down to his level, then beats you with experience.
How-To: Daten verschlüsselt auf DVD speichern. |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
franzf Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
![](images/avatars/13378569704a2d5c2dc51c1.jpg)
Joined: 29 Mar 2005 Posts: 4565
|
Posted: Wed Mar 26, 2008 7:43 am Post subject: |
|
|
Ich kann das hier jetzt ehrlich gesagt nicht nachvollziehen. Die einzigen Seiten die ich kenne, welche Bilder resizen sind imageshack.com &co. Mit normalen Seiten, deren Layout mit Bildern erstellt wird, hab ich keine Probleme. Da sind ja meist die Bilder auf die Webseite zugeschnitten. Diese Bilder sind dann auch meist recht klein (ehrlich, wenn ich auf eine Seite geh, bei der Bilder für das Layout von 1600x1400 auf 30x20 skaliert sind, war das mein letzter Besuch...) und damit sollte der Rechenaufwand für SMOOTH_PIXMAP_TRANSFORM minimal sein.
Wen es also wirklich stört der kann ja mal bei "seinem" Browserhersteller anfragen, ob man nicht eine Option einbauen könnte ala "Bilder mit weniger als XXX Pixel oder einer Größe von YY KB weich skalieren".
Hat vllt. noch einer eine Seite, bei der Layoutgrafiken skaliert werden und das k**** ausschaut?
Grüße
Franz |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
franzf Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
![](images/avatars/13378569704a2d5c2dc51c1.jpg)
Joined: 29 Mar 2005 Posts: 4565
|
Posted: Wed Mar 26, 2008 8:56 am Post subject: Re: Warum "resizen" Browser Bilder so häßlich |
|
|
misterjack wrote: | In Eye Of Gnome ein wenig das Mausrad bewegen (= resizen), bringt meine CPU (3800+) auf >40%. |
Der Vergleich hinkt
1) Wird auf einer Homepage ein Bild genau ein mal (1x) skaliert. Beim Scrollen in EOG gibts ja zig resizeEvent()s.
2) In EOG geht wohl die meiste CPU-Zeit beim Zeichnen drauf. Schieb mal ein Fenster schnell hin und her, da geht die CPU-Last auch ziemlich rauf
3) Komm ich mit Gwenview (KDE4) selbst bei wildestem resizen nie über 18% CPU-Zeit (Bild: 1280x1024) Und ich hab auch einen AMD64 3800+ (Singlecore)
Ergo:
Ein Bugreport könnte da vllt. wirklich was bringen!
Grüße
Franz |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
manuels Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
![](images/avatars/106271246545d319130201e.gif)
Joined: 22 Nov 2003 Posts: 2146 Location: Europe
|
Posted: Wed Mar 26, 2008 11:38 am Post subject: |
|
|
Naja, ich komme darauf, da ich unsere Vereinshomepage hoste und viele Noops Artikel schreiben und die Bilder von ihrer Digitalkamara direkt in den Artikel stellen und verkleinern
Das sieht dann nicht nur bloede aus, sondern belastet auch die Bandbreite unnoetig (aber hier will ich mir gerade Abhilfe verschaffen).
Zum CPU-Last-Argument bzw. -Nicht-Argument: Man koennte ja auch in den Einstellungen festlegen ob man das 'smooth-resizen' haben moechte, oder nicht.
Oder der Rechner erkennt wieviel CPU-Zeit auf dem Rechner dafuer verbraten wird und stellt sich automatisch darauf ein.
So das grosse Problem seh ich darin nicht. _________________ Build your own live cd with catalyst 2.0! |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
xraver Veteran
![Veteran Veteran](/images/ranks/rank_rect_5_vet.gif)
![](images/avatars/1467305991472500473de50.gif)
Joined: 20 Aug 2003 Posts: 1083 Location: Halberstadt
|
Posted: Wed Mar 26, 2008 1:19 pm Post subject: |
|
|
Könnte es auch daran liegen das Bildeditoren das Bild glätten und Browser eben nicht? |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
manuels Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
![](images/avatars/106271246545d319130201e.gif)
Joined: 22 Nov 2003 Posts: 2146 Location: Europe
|
Posted: Wed Mar 26, 2008 1:31 pm Post subject: |
|
|
Ja, aber wieso machen es die Browser nicht.
Wir haben ein das mit der CPU-Zeit lass ich nicht gelten, da franzf sagt, dass es die CPU nicht so stark belastet wie misterjack meinte. _________________ Build your own live cd with catalyst 2.0! |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
think4urs11 Bodhisattva
![Bodhisattva Bodhisattva](/images/ranks/rank-bodhisattva.gif)
![](images/avatars/8534934054bad29b51e5fa.jpg)
Joined: 25 Jun 2003 Posts: 6659 Location: above the cloud
|
Posted: Wed Mar 26, 2008 2:15 pm Post subject: |
|
|
manuels wrote: | Ja, aber wieso machen es die Browser nicht. |
Indirekte 'Lehrmethode' an merkbefreite Webserveradmins die meinen es wäre cool 2560*1600px große Bilder im Briefmarkenformat darzustellen (bzw. 160*100 in bildschirmfüllend)?
Leicht überspitzt sieht es doch so aus:
Wozu sollte ein Browser einen Skalierungsmechanismus ala Lanczos3 implementieren? Es ist viel effektiver die Webseite von Anfang an vernünftig zu designen. Die Skalierung im Browser ist lediglich ein nettes Zuckerl um Versäumnisse des Designers zu kaschieren.
Analoges Beispiel wären PDF's die für highend Druckmaschinen gedacht sind (aka >=1200dpi) anstatt für den Onlinebetrieb welche mit 100dpi anzubieten. _________________ Nothing is secure / Security is always a trade-off with usability / Do not assume anything / Trust no-one, nothing / Paranoia is your friend / Think for yourself |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
schachti Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
![](images/avatars/17240378884464519a52d60.jpg)
Joined: 28 Jul 2003 Posts: 3765 Location: Gifhorn, Germany
|
Posted: Wed Mar 26, 2008 2:22 pm Post subject: |
|
|
Think4UrS11 wrote: | Wozu sollte ein Browser einen Skalierungsmechanismus ala Lanczos3 implementieren? Es ist viel effektiver die Webseite von Anfang an vernünftig zu designen. Die Skalierung im Browser ist lediglich ein nettes Zuckerl um Versäumnisse des Designers zu kaschieren. |
Da aber alle Auflösungen zwischen 800x600 und 1600x1200 in der Praxis durchaus vorkommen (und es sogar User gibt, die 640x480, 1920×1200 oder noch extremere Auflösungen fahren), ist es gar nicht so einfach, das optimal zu machen... _________________ Never argue with an idiot. He brings you down to his level, then beats you with experience.
How-To: Daten verschlüsselt auf DVD speichern. |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
misterjack Veteran
![Veteran Veteran](/images/ranks/rank_rect_5_vet.gif)
![](images/avatars/1830638973416002505a3eb.jpg)
Joined: 03 Oct 2004 Posts: 1657
|
Posted: Wed Mar 26, 2008 2:30 pm Post subject: Re: Warum "resizen" Browser Bilder so häßlich |
|
|
franzf wrote: | misterjack wrote: | In Eye Of Gnome ein wenig das Mausrad bewegen (= resizen), bringt meine CPU (3800+) auf >40%. |
Der Vergleich hinkt
1) Wird auf einer Homepage ein Bild genau ein mal (1x) skaliert. Beim Scrollen in EOG gibts ja zig resizeEvent()s.
2) In EOG geht wohl die meiste CPU-Zeit beim Zeichnen drauf. Schieb mal ein Fenster schnell hin und her, da geht die CPU-Last auch ziemlich rauf ![Wink ;)](images/smiles/icon_wink.gif) |
Ich habe bewusst übetrieben. Es stimmt, es wird einmal skaliert, aber gerade für dieses Antwortfenster werden 31 Grafiken geladen. Und ein Browser muss auch zeichnen Schaltet man bei EOG Kantenglättung aus, hat man ähnliche Ergebnisse wie im Firefox.
Übrigens würde mich es auf meinen 400 MHz Win98-Rechner nerven, wenn der aktuelle Firefox bei jedem Resizing wegen Kantenglättung die Möhre erstmal für eine Gedenkminute lahmlegt
Natürlich ist es bestimmt ärgerlich, dass man Kantenglättung nicht einschalten kann. _________________ „Meine Meinung steht fest! Bitte verwirren Sie mich nicht mit Tatsachen.“ |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
franzf Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
![](images/avatars/13378569704a2d5c2dc51c1.jpg)
Joined: 29 Mar 2005 Posts: 4565
|
Posted: Wed Mar 26, 2008 2:43 pm Post subject: |
|
|
So, dass das jeder mal ausprobieren (und sehen) kann, hier ein kleines Script (PyQt4), zu speichern als (z.B.) transform_test.py:
Code: | from PyQt4 import Qt
import sys
if len(sys.argv) < 2:
print "Benutzung:"
print "python " + sys.argv[0] + " <filename> [scaleFactor]"
sys.exit(1)
if not Qt.QFile.exists(sys.argv[1]):
print "Die Datei existiert nicht!"
sys.exit(1)
app = Qt.QApplication(sys.argv)
px = Qt.QPixmap(sys.argv[1])
if px.isNull():
print "Konnte die Datei nicht als Pixmap laden. Ist " + sys.argv[1] + " wirklich ein Bild?"
sys.exit(1)
scale = 0.5
if len(sys.argv) == 3:
scale = float(sys.argv[2])
start = Qt.QTime.currentTime()
px1 = px.scaled( px.size() * scale, Qt.Qt.KeepAspectRatio )
stop = Qt.QTime.currentTime()
msecFast = start.msecsTo(stop)
print "FastTransform dauerte " + str(msecFast) + " msec"
start = Qt.QTime.currentTime()
px2 = px.scaled( px.size() * scale, Qt.Qt.KeepAspectRatio, Qt.Qt.SmoothTransformation )
stop = Qt.QTime.currentTime()
msecSmooth = start.msecsTo(stop)
print "SmoothTransform dauerte " + str(msecSmooth) + " msec"
rat = float(msecSmooth) / float(msecFast)
print "Smooth dauert " + str(rat) + " mal so lange wie Fast"
print "Skaliert wurde von " + str(px.width())+"x"+str(px.height()) + " auf " + str(px1.width())+"x"+str(px1.height())
view = Qt.QGraphicsView()
scene = Qt.QGraphicsScene()
view.setScene(scene)
item1 = Qt.QGraphicsPixmapItem(px1)
scene.addItem(item1)
item2 = Qt.QGraphicsPixmapItem(px2)
scene.addItem(item2)
item2.setPos(item1.boundingRect().bottomLeft())
view.show()
sys.exit(app.exec_()) |
Das sagt mir dann z.B.:
Code: | $ python pixmap_transformation.py test.jpg 0.05
FastTransform dauerte 124 msec
SmoothTransform dauerte 214 msec
Smooth dauert 1.72580645161 mal so lange wie Fast
Skaliert wurde von 2560x1920 auf 128x96 |
Also, ein Bild von 2560x1920 auf 128x96 mit SmoothTransform zu skalieren dauert 1.73 mal so lange wie mit FastTransform...
Ist jetzt natürlich kein Benchmark, aber zeigt ungefähr die Richtung an (so wie glxgears).
Beide Bilder sieht man dann auch noch in einem GraphicsView
Grüße
Franz
EDIT:
misterjack wrote: | Ich habe bewusst übetrieben. Es stimmt, es wird einmal skaliert, aber gerade für dieses Antwortfenster werden 31 Grafiken geladen. Und ein Browser muss auch zeichnen Schaltet man bei EOG Kantenglättung aus, hat man ähnliche Ergebnisse wie im Firefox.
Übrigens würde mich es auf meinen 400 MHz Win98-Rechner nerven, wenn der aktuelle Firefox bei jedem Resizing wegen Kantenglättung die Möhre erstmal für eine Gedenkminute lahmlegt
Natürlich ist es bestimmt ärgerlich, dass man Kantenglättung nicht einschalten kann. |
31 Grafiken, die alle nicht skaliert werden müssen. Und seit wann skaliert der Browser die Webseite, wenn man die Fenstergröße ändert? Neues Feature vom Firefox3?
Grundsätzlich würde mich aber mal ein Link interessieren, wo man sowas auch sehen kann! Denn langsam glaub ich dass Konqueror die Pixmaps weich skaliert, weil ich nie Probleme hab...
Last edited by franzf on Wed Mar 26, 2008 2:48 pm; edited 1 time in total |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
schachti Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
![](images/avatars/17240378884464519a52d60.jpg)
Joined: 28 Jul 2003 Posts: 3765 Location: Gifhorn, Germany
|
Posted: Wed Mar 26, 2008 2:47 pm Post subject: |
|
|
franzf wrote: | Also, ein Bild von 2560x1920 auf 128x96 mit SmoothTransform zu skalieren dauert 1.73 mal so lange wie mit FastTransform...
Ist jetzt natürlich kein Benchmark, aber zeigt ungefähr die Richtung an (so wie glxgears). |
Ich denke, das hängt wesentlich vom Prozessor ab (ob MMX/SSE etc. vorhanden ist oder nicht). Ich könnte mir vorstellen, dass ohne MMX/SSE der Faktor deutlich ungünstiger sein könnte. _________________ Never argue with an idiot. He brings you down to his level, then beats you with experience.
How-To: Daten verschlüsselt auf DVD speichern. |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
think4urs11 Bodhisattva
![Bodhisattva Bodhisattva](/images/ranks/rank-bodhisattva.gif)
![](images/avatars/8534934054bad29b51e5fa.jpg)
Joined: 25 Jun 2003 Posts: 6659 Location: above the cloud
|
Posted: Wed Mar 26, 2008 3:11 pm Post subject: |
|
|
schachti wrote: | Da aber alle Auflösungen zwischen 800x600 und 1600x1200 in der Praxis durchaus vorkommen (und es sogar User gibt, die 640x480, 1920×1200 oder noch extremere Auflösungen fahren), ist es gar nicht so einfach, das optimal zu machen... |
Ich nutze auch Auflösungen von VGA bis WUXGA je nach Gerät an dem ich sitze (meistens WSXGA+).
Wahlweise das kleinste gemeinsame Übel nehmen, das dürfte derzeit bei 800x600 liegen (mit extrem wenigen Ausreißern nach unten) oder aber abhängig von der Fenstergröße des Browsers bzw. der Bildschirmauflösung des Clients unterschiedliche große _vorgerenderte_ Thumbnails ausliefern. (klein=bis 800x600;mittel=bis 1680x1024;groß=alles darüber o.ä.)
Selbst die großen Sites wie youtube/youporn/etc. liefern immer relativ kleine Thumbs aus. Ist ja auch logisch denn a) geht es schneller und b) spart Traffickosten.
Die Vorlieben sind nunmal unterschiedlich; mir persönlich ist es lieber eine Seite wird schnell aufgebaut als in highend Druckqualität. Seiten die mich direkt mit highres 'zuballern' möchten mich nicht als Leser.
Klar könnte man sagen 'sollens die Browserentwickler halt als optional zuschaltbar integrieren' - nur riecht das dann bereits streng nach Bloatware. _________________ Nothing is secure / Security is always a trade-off with usability / Do not assume anything / Trust no-one, nothing / Paranoia is your friend / Think for yourself |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
artbody Guru
![Guru Guru](/images/ranks/rank_rect_3.gif)
![](images/avatars/1317839984581fbbb4102e8.gif)
Joined: 15 Sep 2006 Posts: 494 Location: LB
|
Posted: Wed Mar 26, 2008 5:11 pm Post subject: |
|
|
Ich denke
Es gibt 2 Arten von User
Highspeed und fette Maschine
Modem und alten 486er
(lacht nicht unser Untermieter hat einen 486er mit Win95 am laufen und beschwert sich immer daß das so lange dauert)
Hier den Konsens zu finden dürfte schwer sein
Und in erster Linie ist es Sache des Webdesigners eine Seite optimal zu gestalten
Jetzt ist natürlich die Frage was ist aus dessen Sicht optimal
Optimal könnte geringer Traffic wie hier im Forum
oder eben Höchstauflösend für z.B. Kunstseiten sein.
Damit geht der Webdesigners erst mal auf die Anforderung des Kunden ein.
Daß hier natürlich versucht werden sollte browserconform bestmöglichste Ergebnisse zu erzielen ist ebenfalls einleuchtend.
Aber jetzt sind wir bereits an dem Punkt, wo sich die M$IE, Gecko, Opera, etc Falle auftut
Der eine Browser kann das, der andere was anderes....
Und ganz zu schweigen von wirklich sinnvollen Sachen wie SVG oder ähnliches, wo die Unterschiede von Browser zu Browser noch gravierender sind
Mangelde Plugins für Linux (div-x....)
Es ist eigentlich immer noch wie in der Bronzezeit.(Steinzeit haben wir hinter uns - fast)
Aber wie aus den ganzen Anforderungen zu entnehmen ist, mutiert ein Webbrowser zu einer "eierlegenden Wollmilchsau"
Nun gibt es aber auch noch den Grundsatz, mit geringstmöglichem Aufwand das Gewünschte zu erreichen.
Würden sich 90% der Webdesigner daran halten, dann gäbe es sicher keine reine Flashseiten, wo man wenn man kein flash installiert hat/kann (Firmenrechner) nichts sieht.
Schaut man dann von zu Hause auf die Seite findet man ein reines Flashmenü als untereinander angeordnete Menüpunkte
ala
Code: |
<table><tr><td><td/><tr/><tr><td><td/><tr/>....<table/>
|
Alles nichts, was den Einsatz von Flash rechtfertigen würde....
Sowas find ich krass. _________________ Never give up
WM : E16 the true enlightenment
achim |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
misterjack Veteran
![Veteran Veteran](/images/ranks/rank_rect_5_vet.gif)
![](images/avatars/1830638973416002505a3eb.jpg)
Joined: 03 Oct 2004 Posts: 1657
|
Posted: Wed Mar 26, 2008 5:20 pm Post subject: |
|
|
artbody wrote: |
Code: |
<table><tr><td><td/><tr/><tr><td><td/><tr/>....<table/>
|
|
Das ist aber erst recht Bronzezeit ![Smile :)](images/smiles/icon_smile.gif) _________________ „Meine Meinung steht fest! Bitte verwirren Sie mich nicht mit Tatsachen.“ |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
musv Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
![](images/avatars/17022956523ec2f01a46f03.jpg)
Joined: 01 Dec 2002 Posts: 3369 Location: de
|
Posted: Wed Mar 26, 2008 5:40 pm Post subject: |
|
|
manuels wrote: | Naja, ich komme darauf, da ich unsere Vereinshomepage hoste und viele Noops Artikel schreiben und die Bilder von ihrer Digitalkamara direkt in den Artikel stellen und verkleinern
Das sieht dann nicht nur bloede aus, sondern belastet auch die Bandbreite unnoetig (aber hier will ich mir gerade Abhilfe verschaffen). |
Ich bin grad dabei einen Webshop zu programmieren. Und da werden die Produktbilder auf dem Server skaliert. Ich mach das über ein PHP-Script. Du hast dann 2 Möglichkeiten:
- Wenn der Server genug Power hat, kannst du die Bilder in Originalgröße auf dem Server lassen, on-the-fly skalieren und das skalierte Bild übertragen.
- Die Bilder gleich beim Hochladen skalieren und im kleineren Format abspeichern.
Hat den Vorteil, daß du die Bilder immer genau auf die Größe bringst, die du willst. Außerdem sparst du in jedem Fall Bandbreite und hast das o.g. Browser-Resize-Problem nicht. Wenn du's brauchst, poste ich mal das Script. |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
TheSmallOne Guru
![Guru Guru](/images/ranks/rank_rect_3.gif)
![](images/avatars/9530026574235783cdafc4.gif)
Joined: 22 Jan 2005 Posts: 467 Location: Germany
|
Posted: Wed Mar 26, 2008 6:01 pm Post subject: |
|
|
Think4UrS11 wrote: | Analoges Beispiel wären PDF's die für highend Druckmaschinen gedacht sind (aka >=1200dpi) anstatt für den Onlinebetrieb welche mit 100dpi anzubieten. |
Sollte ein ordentliches PDF nicht sowieso komplett in Vektorgrafik vorliegen und somit sowieso nichts mit dpi zu tun haben? |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
manuels Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
![](images/avatars/106271246545d319130201e.gif)
Joined: 22 Nov 2003 Posts: 2146 Location: Europe
|
Posted: Wed Mar 26, 2008 6:14 pm Post subject: |
|
|
musv wrote: | Hat den Vorteil, daß du die Bilder immer genau auf die Größe bringst, die du willst. Außerdem sparst du in jedem Fall Bandbreite und hast das o.g. Browser-Resize-Problem nicht. Wenn du's brauchst, poste ich mal das Script. | Bastel gerade an was ähnlichem für Joomla.
Hätte schon interesse. Was für ein Library nutzt du denn? _________________ Build your own live cd with catalyst 2.0! |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
mastacloak Apprentice
![Apprentice Apprentice](/images/ranks/rank_rect_2.gif)
Joined: 01 Aug 2004 Posts: 174 Location: Berlin / Germany
|
Posted: Wed Mar 26, 2008 6:58 pm Post subject: |
|
|
musv wrote: |
- Wenn der Server genug Power hat, kannst du die Bilder in Originalgröße auf dem Server lassen, on-the-fly skalieren und das skalierte Bild übertragen.
|
Und wenn die skalierten Bilder noch auf dem Server gecached werden, dann muss für jede Auflösung nur einmal skaliert werden und die CPU-Last hält sich in Grenzen.
TheSmallOne wrote: |
Sollte ein ordentliches PDF nicht sowieso komplett in Vektorgrafik vorliegen und somit sowieso nichts mit dpi zu tun haben? |
Manchmal braucht man auch noch Bitmaps (insbesondere Fotos) in PDFs, z.B. für Flyer etc. Die lassen sich meist nicht als Vektorgrafik darstellen. |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
musv Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
![](images/avatars/17022956523ec2f01a46f03.jpg)
Joined: 01 Dec 2002 Posts: 3369 Location: de
|
Posted: Wed Mar 26, 2008 7:11 pm Post subject: |
|
|
Library ist die gd. Natürlich muß php das dann auch unterstützen.
Das Script gibt Bilder on-the-fly-resized in der gewünschten Größe aus. Optionale Eingabeparameter ist die maximale Bildgröße - egal ob Breite oder Höhe. Der Aspect Ratio wird beibehalten.
Code: |
<?php
/** Die Datei wandelt ein Bild in eine bestimmte Größe um. <br>
* Get-Parameter: <br>
* pic: - Pfad + Bild, was umgewandelt werden soll<br>
* maxsize - [optional] Maximale Größe des Bildes in Pixel<br><br>
* Rückgabewert:<br>
* Bild im jpg-Format.
*/
/* Header auf Bild umschalten */
header("Content-type: image/jpeg");
/* Get-Variablen einlesen */
$maxsize = ($_GET["maxsize"])?intval($_GET["maxsize"]):100;
$pic = "../../../".$_GET["pic"]; // Pic-Verzeichnis
/* Die dummdämlichen Leerzeichen wieder in die Dateinamen reinmachen.
* Man sollte sowas verbieten.
* HTML-Entities hab ich mal rausgelassen, Das kann sonst 'n schönes
* Theater noch mit Umlauten werden. Ich will's gar nicht ausprobieren.
*/
$pic = str_replace("_____"," ",$pic);
/* Image-Handler erstellen */
$image_info = getImageSize($pic) ; // see EXIF for faster way
/* Mime-Type unterscheiden */
switch ($image_info['mime']) {
case 'image/gif':
if (imagetypes() & IMG_GIF) { // not the same as IMAGETYPE
$image_src = imageCreateFromGIF($pic) ;
} else {
$ermsg = 'GIF images are not supported<br />';
}
break;
case 'image/jpeg':
if (imagetypes() & IMG_JPG) {
$image_src = imageCreateFromJPEG($pic) ;
} else {
$ermsg = 'JPEG images are not supported<br />';
}
break;
case 'image/png':
if (imagetypes() & IMG_PNG) {
$image_src = imageCreateFromPNG($pic) ;
} else {
$ermsg = 'PNG images are not supported<br />';
}
break;
case 'image/wbmp':
if (imagetypes() & IMG_WBMP) {
$image_src = imageCreateFromWBMP($pic) ;
} else {
$ermsg = 'WBMP images are not supported<br />';
}
break;
default:
$ermsg = $image_info['mime'].' images are not supported<br />';
break;
}
/* Resize-Abschnitt
* Wir ermitteln erst, welcher Wert von beiden der größere ist.
* Der wird dann als Maxsize angenommen, der andere wird dementsprechend angepaßt.
*
* Danach wird ein neues Image mit der ermittelten Größe erstellt (image_dst)
* Das Quellimage wird auf das neue kopiert mit Größenänderung
* Zum Schluß werden die beiden Images zerstört.
*/
if (!isset($ermsg)) {
$width_src = imagesx($image_src);
$heigth_src = imagesy($image_src);
/* An dieser Stelle wird erstmal überprüft, ob wir überhaupt
* skalieren müssen. Wenn die maxsize der größeren der beiden
* Bildmaße entspricht, dann sparen wir und den Resize.
*/
$bigside = max($width_src, $heigth_src);
if ($bigside == $maxsize) {
imageJPEG($image_src);
} else {
if ($width_src > $heigth_src) {
$width_dst = $maxsize;
$heigth_dst = round($heigth_src * $maxsize / $width_src);
} else {
$heigth_dst = $maxsize;
$width_dst = round($width_src * $maxsize / $heigth_src);
}
$image_dst = imageCreateTrueColor($width_dst,$heigth_dst);
imageCopyResampled($image_dst, $image_src, 0, 0, 0, 0, $width_dst, $heigth_dst, $width_src, $heigth_src);
imageJPEG($image_dst);
imageDestroy($image_dst);
}
imageDestroy($image_src);
}
?>
|
Die Zeile
Code: |
<img src="img_builder_script.php?pic=bild.jpg&maxsize=500" />
|
würde dann z.B. das Bild bild.jpg mit maximaler Breite oder Höhe von 500 px ausgeben. Wie man dem Quelltext entnehmen kann, hatte ich Probleme mit Leerzeichen im Dateinamen der Bilder wegen der Get-Parameter. Ich hab das dann so gelöst, indem ich alle Leerzeichen der Bildernamen durch "_____" ersetzt hab. Das Script ist nicht zu 100% von mir. Hab einige Teile davon in irgendeinem Forum gefunden und teilweise übernommen, teilweise abgeändert. |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
manuels Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
![](images/avatars/106271246545d319130201e.gif)
Joined: 22 Nov 2003 Posts: 2146 Location: Europe
|
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
nanos Tux's lil' helper
![Tux's lil' helper Tux's lil' helper](/images/ranks/rank_rect_1.gif)
![](images/avatars/1686817061481577981e80d.jpg)
Joined: 22 Jun 2006 Posts: 78
|
Posted: Wed Mar 26, 2008 9:10 pm Post subject: |
|
|
Du solltest deine php oder gdlib version überprüfen, bei den früheren versionen waren die Bilder alle so.
Und immer imagecopyresampled() an Stelle von imagecopyresized() verwenden.
Gruß
Roland |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
manuels Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
![](images/avatars/106271246545d319130201e.gif)
Joined: 22 Nov 2003 Posts: 2146 Location: Europe
|
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
xraver Veteran
![Veteran Veteran](/images/ranks/rank_rect_5_vet.gif)
![](images/avatars/1467305991472500473de50.gif)
Joined: 20 Aug 2003 Posts: 1083 Location: Halberstadt
|
Posted: Thu Mar 27, 2008 9:01 am Post subject: |
|
|
franzf wrote: |
Und seit wann skaliert der Browser die Webseite, wenn man die Fenstergröße ändert? Neues Feature vom Firefox3?
Grundsätzlich würde mich aber mal ein Link interessieren, wo man sowas auch sehen kann! Denn langsam glaub ich dass Konqueror die Pixmaps weich skaliert, weil ich nie Probleme hab... |
Also der IE7 machts.
Orginal: http://img208.imageshack.us/img208/5643/iema7.jpg
400% Zoom: http://img401.imageshack.us/img401/3849/iezoomyh7.jpg
Aber das ist ja nun was anderes als "skalieren der Website je nach Browsergrösse". |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
|