Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 40 von 111

Thema: [retina_image] Hochauflösende Bilder für iPad, iPhone, Macbook Pro Retina und Co.

  1. #1
    Contao-Fan Avatar von Babelfisch
    Registriert seit
    30.06.2009.
    Ort
    Leipzig
    Beiträge
    894

    Standard [retina_image] Hochauflösende Bilder für iPad, iPhone, Macbook Pro Retina und Co.

    Diese Erweiterung erzeugt automatisch zu jedem skalierten Bild ein zweites @2x-Bild mit der doppelten Auflösung. Sofern das Ausgangsbild die notwendige Größe hat, werden im Cache-Verzeichnis system/html jeweils ein normal skaliertes und ein gleichnamiges doppelt so großes Bild erstellt, welches vor der Endung den Zusatz @2x hat.

    Über ein kleines Javascript werden dann bei den passenden Geräten wie dem iPad 3, iPhone 4 oder MacBook Pro Retina die Bilder mit der hochauflösenden Variante – sofern vorhanden – ausgetauscht.

    Nach der Installation der Erweiterung muss über die Systemwartung der Cache in system/html gelöscht werden, damit die Bilder neu erzeigt werden.

    Liegen für andere Bilder wie bspw. Layoutgrafiken die hochauflösenden Bilder mit dem Zusatz @2x im gleichen Verzeichnis wie das Ausgangsbild, werden auch diese Bilder automatisch eingebunden.

    Link: http://www.contao.org/de/extension-l..._image.de.html

    Aktiv ist die Erweiterung auf diesen Seiten: www.lingolia.com und www.firmm.org Allerdings sind dort noch nicht alle Bilder in höheren Auflösungen vorhanden.

    Seit Version 1.3.0 ermöglicht es die Erweiterung zusätzlich auch SVG-Bilder einzubinden.

    Kommentare und Hinweise sind erwünscht, Fehler bitte in Github melden.
    Geändert von Babelfisch (24.04.2014 um 15:14 Uhr)
    Meine aktiven Contao-Projekte: LingoliaStiftung firmm

  2. #2
    Contao-Fan
    Registriert seit
    12.01.2011.
    Beiträge
    322

    Standard

    Hallo,

    danke für die echt gute Erweiterung. Leider bekomme ich es mit den Layoutgrafiken nicht hin. Ich habe ein Modul erstellt und in diesem per html eine Logo eingebunden. Im gleichem Ordner liegt das Logo mit zwei unterschiedlichen Auflösungen und dem Zusatz @2x. Aber es wird immer nur das Bild mit der geringen Auflösung geladen.

    Was mache ich falsch?

    Danke.

  3. #3
    Contao-Fan Avatar von Babelfisch
    Registriert seit
    30.06.2009.
    Ort
    Leipzig
    Beiträge
    894

    Standard

    Bekommt das Bild denn die Klasse at2x zugewiesen? Wenn nicht, gibt dem Bild einfach manuell die Klasse dazu. Du könntest mir auch mal deine Seite per PN schicken, dann schaue ich mir das selbst noch mal an.

    Gruß
    Meine aktiven Contao-Projekte: LingoliaStiftung firmm

  4. #4
    Contao-Fan
    Registriert seit
    12.01.2011.
    Beiträge
    322

    Standard

    Die Endung wird nicht angehangen. Der Bildname ist wie im HTML-Modul in Contao gegeben unverändert. Per CSS habe ich auch eine Größe für das Bild zu gewiesen, aber es wird einfach nicht die @2x Version geladen.

  5. #5
    Contao-Fan Avatar von Babelfisch
    Registriert seit
    30.06.2009.
    Ort
    Leipzig
    Beiträge
    894

    Standard

    Kannst du mir mal einen Link zur Seite schicken und schreiben, um welches Bild es sich handelt?

    Gruß
    Meine aktiven Contao-Projekte: LingoliaStiftung firmm

  6. #6
    Contao-Nutzer
    Registriert seit
    23.06.2009.
    Ort
    Heide / Holstein
    Beiträge
    203

    Standard

    hallo.

    danke für die tolle erweiterung.

    leider scheint sie auch bei mir nicht zu funktionieren oder ich habe etwas falsch gemacht.

    laut anleitung muss ja nicht viel getan werden:

    - erweiterung installieren.
    - cache löschen.
    - bild in doppelten maßen und dem richtigen dateinamen "dateiname@2x.png" hochladen.

    und dann sollte es doch eigentlich eingefügt werden, oder?


    mfg, leooo
    Gruß/Greetings, leooo

  7. #7
    Contao-Fan Avatar von Babelfisch
    Registriert seit
    30.06.2009.
    Ort
    Leipzig
    Beiträge
    894

    Standard

    Vom Prinzip musst du gar nicht machen. Ein @2x Bild wird automatisch erstellt, sofern das Ausgangsbild mindestens doppelt so groß ist. Soll heißen: du fügst ein Bild über ein Inhaltselemente oder als Insert-Tag image ein und gibst als Größe 500 x 500 Pixel an. Wenn das Ausgangsbild mindestens 1000 x 1000 Pixel groß ist, erzeugt die Erweiterung bei Bedarf automatisch ein @2x Bild und aktiviert es für Retina-Geräte.

    Gruß
    Meine aktiven Contao-Projekte: LingoliaStiftung firmm

  8. #8
    Contao-Nutzer
    Registriert seit
    23.06.2009.
    Ort
    Heide / Holstein
    Beiträge
    203

    Standard

    ok, und wie funktioniert es dann bei grafiken im layout?
    ich habe wie mein vorredner 56bongartz120 ein html modul welches das logo einbindet. dafür hab ich das logo in eine rgrößeren version und dem dateinamen zusatz @2x abgespeichert. nur wird es nicht geladen.

    wie sieht es denn eigentlich aus wenn ich das modul imageslider einbaue?

    werden da auch bilder erstellt wenn sie doppelt so groß vorliegen?


    mfg, leooo
    Gruß/Greetings, leooo

  9. #9
    Contao-Nutzer
    Registriert seit
    23.06.2009.
    Ort
    Heide / Holstein
    Beiträge
    203

    Standard

    Guten Morgen,

    so hab's noch mal getestet.
    Wenn ich ein Bild über das BE einabaue wird die Klase atx2 vergeben.

    Bloß scheint der Pfad zur retina.js falsch zu sein. Im Quellcode wird dieser mit "/scripts/retina.js" angegeben, wenn ich dort drauf klicke wird das Script nicht gefunden.

    Müßte der Pfad nicht "system/modules/retina_image/scripts/retina.js" heißen?


    Mfg, leooo
    Gruß/Greetings, leooo

  10. #10
    Contao-Fan Avatar von Babelfisch
    Registriert seit
    30.06.2009.
    Ort
    Leipzig
    Beiträge
    894

    Standard

    Der Pfad wird dynamisch gebildet und sieht bei einer Conto-Installation ohne Unterverzeichnis so aus:

    Code:
    system/modules/retina_image/scripts/retina.js
    Wenn das bei dir nicht so ist, bräuchte ich mal ein paar Infos zum System wie PHP-Version, Safemode, Conto-Version. Ein Link zu deiner Seite, wo ich mir das mal live anschauen kann, schadet auch nicht.

    Gruß
    Meine aktiven Contao-Projekte: LingoliaStiftung firmm

  11. #11
    Contao-Nutzer
    Registriert seit
    23.06.2009.
    Ort
    Heide / Holstein
    Beiträge
    203

    Standard

    Hallo.

    anbei die Infos:

    Contao 2.11.5
    PHP 5.2.17
    Safemode: On

    Link kommt per PM.

    Merci.
    Gruß/Greetings, leooo

  12. #12
    Contao-Fan Avatar von Babelfisch
    Registriert seit
    30.06.2009.
    Ort
    Leipzig
    Beiträge
    894

    Standard

    Der Knackpunkt ist wohl PHP 5.2, welches eine von mir genutzte Konstante noch nicht bietet. Ich habe es gerade geändert und die Version 1.0.4 hochgeladen, welche das Problem beheben sollte. Probier es damit bitte mal aus.

    Gruß
    Meine aktiven Contao-Projekte: LingoliaStiftung firmm

  13. #13
    Contao-Nutzer
    Registriert seit
    23.06.2009.
    Ort
    Heide / Holstein
    Beiträge
    203

    Standard

    Hallo Babelfisch,

    super, nun wird auf jeden Fall schon mal der Pfad zum Script richtig ausgegeben. Danke dafür.

    Wie verhält sich Deine Erweiterung nun mit dem Imageslider, arbeiten die auch zusammen?


    Vielen Dank für die schnelle Hilfe.


    Mfg, leooo
    Gruß/Greetings, leooo

  14. #14
    Contao-Urgestein
    Registriert seit
    07.07.2009.
    Beiträge
    4.107

    Standard

    Zitat Zitat von Babelfisch Beitrag anzeigen
    Der Knackpunkt ist wohl PHP 5.2, welches eine von mir genutzte Konstante noch nicht bietet. Ich habe es gerade geändert und die Version 1.0.4 hochgeladen, welche das Problem beheben sollte. Probier es damit bitte mal aus.

    Gruß
    PHP-Code:
    $GLOBALS['TL_JAVASCRIPT'][] = strstr(dirname(__DIR__), 'system/modules').'/scripts/retina.js'
    Das ist in Contao sowieso nicht notwendig. Egal ob PHP5.2 oder PHP5.3

  15. #15
    Contao-Nutzer
    Registriert seit
    05.03.2010.
    Beiträge
    94

    Daumen hoch

    Vielen Dank für diese Erweiterung.

    Funktioniert Einwandfrei. Und jetzt sind die Fotos genauso knackscharf wie der Rest der Website! Die Layoutgrafiken x2 muss ich erst erstellen!

    Wiedermal schwerst beeindruckt von der Contoa-Community!!!!


    +++++++

    EDIT:

    Also Layoutgrafiken werden bei mir auch nicht angezeigt.

    Habe die xxx.png und xxx@2x.png im gleichen Ordner, es wird aber immer nur xxx.png geladen!
    Geändert von matthias123 (22.08.2012 um 17:00 Uhr)

  16. #16
    Contao-Fan
    Registriert seit
    12.01.2011.
    Beiträge
    322

    Standard

    Hallo,

    erst ein mal, ich bin super glücklich mit der Erweiterung nutzte sie jetzt standmäßig für alle meine Projekte.

    Ich bin jetzt leider nur auf ein kleines Problem gestoßen. Ich will auf meiner Seite Hover Effekt mit Bildern nutzen. Ich erstelle den Hover Effekt per CSS in dem ich immer die hälfte des Bildes ausblende und beim Hover den unteren Bereich hoch schiebe.

    Nur ist mir gerade aufgefallen, dass per CSS eingebundene Bilder nicht von der Erweiterung erkannt werden. Wie kann ich jetzt einen Hover Effekt für meine Seite erstellen und die Erweiterung nutzen?

    Danke

  17. #17
    Contao-Fan Avatar von Babelfisch
    Registriert seit
    30.06.2009.
    Ort
    Leipzig
    Beiträge
    894

    Standard

    @20matthias123:Bei Layoutgrafiken musst du evtl. manuell die Klasse at2x angeben, dann werden sie vom Script mit erfasst.

    @bongartz120: Auf Stylesheets hat die Erweiterung erst mal keinen Einfluss und kann da auch nichts automatisch ersetzen. Ich habe aber gerade Version 1.1.1 hochgeladen, die zumindest eine Halbautomatik mit sich bringt. In der Beschreibung zur Erweiterung im ER ist beschrieben, die das ganze aufgebaut sein muss:

    Wenn Bilder über CSS mit eingebunden werden, können auch diese (halb)automatisch an das Retina-Display angepasst werden. Die Bilder müssen wie gehabt mit dem Zusatz @2x.jpg vorliegen. Zusätzlich muss dem Element mit dem Hintergrundbild die Klasse at2x zugewiesen werden. Außerdem muss im CSS die Größe des Bildes mit background-size definiert werden. Bei einem 200x100 Pixel großem Bild image.jpg würde dann also zusätzlich ein 400x200 Pixel großes Bild image@2x.jpg im gleichen Verzeichnis liegen. Inline würde das Element dann so in etwa definiert werden:

    HTML-Code:
    <div class="at2x" style="background-image:url(files/image.jpg); background-size:200px 100px;">
    Schau mal, ob das bei dir funktioniert.

    Gruß
    Meine aktiven Contao-Projekte: LingoliaStiftung firmm

  18. #18
    Contao-Fan
    Registriert seit
    12.01.2011.
    Beiträge
    322

    Standard

    ich habe es mla versucht umzusetzen. Auf einem Retina Sytem sieht es gut aus, aber auf einem normalen System ist es komplett zerschossen.

    Hier mal mein Beispiel:

    http://contao.versicherungheute.de

  19. #19
    Contao-Fan Avatar von Babelfisch
    Registriert seit
    30.06.2009.
    Ort
    Leipzig
    Beiträge
    894

    Standard

    Ich kann bis auf die höher aufgelösten Bilder keinen Unterschied zwischen einem Retina- und nicht Retina-Rechner erkennen. Was soll da zerschossen sein?

    Gruß
    Meine aktiven Contao-Projekte: LingoliaStiftung firmm

  20. #20
    Contao-Fan
    Registriert seit
    12.01.2011.
    Beiträge
    322

    Standard

    Ich habe es mir im ie 8 angeschaut und hier ist die Grafik zusammen geschoben und der hover Effekt geht sieht aber bescheiden aus.

    Ich werde es aber gleich noch mal testen.

  21. #21
    Contao-Fan Avatar von Babelfisch
    Registriert seit
    30.06.2009.
    Ort
    Leipzig
    Beiträge
    894

    Standard

    Momentan hast du offenbar die @2x-Grafik im Stylesheet eingebunden. Das darfst du nicht machen, da die ja nur Retina-Displays zu Gesicht bekommen sollen, wofür die retina.js sorgt. Allerdings fällt mir gerade auf, dass es mit dem Hover-Bild sowieso nicht klappen wird. Das kann ich nicht mit austauschen. Dort würde ich an deiner Stelle eher mit Sprites arbeiten und das Bild beim Hover um 50 % verschieben. Dann brauchst du kein zweites Bild und es klappt wieder mit der Erweiterung.

    Gruß
    Meine aktiven Contao-Projekte: LingoliaStiftung firmm

  22. #22
    Contao-Fan
    Registriert seit
    12.01.2011.
    Beiträge
    322

    Standard

    Ok Danke.

    Was meinst du jetzt mit Spirits?

    Hast du vielleicht ein kurzes Beispiel hierfür?

    Danke

  23. #23
    Administratorin Avatar von lucina
    Registriert seit
    19.06.2009.
    Ort
    Kiel (DE)
    Beiträge
    7.335
    Partner-ID
    152
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Grundsätzliche Informationen zu CSS-Sprites findest Du in dem grundlegenden Artikel von David Shea aus dem Jahre 2004 sowie bei den Webkrauts.

  24. #24
    Contao-Fan
    Registriert seit
    12.01.2011.
    Beiträge
    322

    Standard

    Ich habe es zur Zeit doch mit Spirts gelöst. Ich weiß jetzt gerade nicht was du mit deiner Lösung anders machen willst.

    Ich bin gerade nur noch verwirrt.

  25. #25
    Contao-Fan Avatar von Babelfisch
    Registriert seit
    30.06.2009.
    Ort
    Leipzig
    Beiträge
    894

    Standard

    Dann passt es ja schon fast. Jetzt musst du nur noch zusätzlich ein nicht-Retina-Bild mit der halben Größe zur Verfügung stellen (also Kontakt.jpg) und im Stylesheet darfst du nicht Kontakt@2x.jpg einbinden, sondern das normale Bild Kontakt.jpg. Die Retina-Variante wird dann durch die Klasse at2x und das Javascript bei Bedarf ausgetauscht. Außerdem darfst du beim a:hover nicht noch mal die URL des Bildes angeben. Dort steuerst du den Versatz direkt mit background-position-y: -160px

    Gruß
    Meine aktiven Contao-Projekte: LingoliaStiftung firmm

  26. #26
    Contao-Fan
    Registriert seit
    12.01.2011.
    Beiträge
    322

    Standard

    So habe jetzt die Änderung so umgesetzt wie du gesagt hast. Leider hab ich das Problem, dass die hochauflösende Grafik leider nicht geladen wird. Es wird nur die Standard Grafik geladen, welche ich im Stylesheet definiert habe.

    Wo kann mein Fehler liegen? Was habe ich übersehen damit deine Erweiterung bei mir funktioniert.

  27. #27
    Contao-Fan Avatar von Babelfisch
    Registriert seit
    30.06.2009.
    Ort
    Leipzig
    Beiträge
    894

    Standard

    Das ganze war doch etwas komplizierter und es gab noch einen Fehler in der retina.js, da über das JavaScript-Styleobjekt nur Inline-Styles erfasst werden. In der Version 1.1.2 sollte es jetzt aber funktionieren. Probier es bitte mal damit aus.

    Gruß
    Meine aktiven Contao-Projekte: LingoliaStiftung firmm

  28. #28
    Contao-Fan
    Registriert seit
    12.01.2011.
    Beiträge
    322

    Standard

    Jetzt geht es.

    Vielen Dank!

  29. #29
    Contao-Nutzer Avatar von truni
    Registriert seit
    18.08.2009.
    Ort
    Zürcher Unterland
    Beiträge
    166

    Frage

    Bei Tests hier greift die Extension meistens gut, aber nicht immer. Ein Logo (PNG), das ebenfalls zur Sicherheit die @2x-Version auf dem Server hat, wird nicht erkannt. Definiert wurde es ganz normal mit dem ce_image. Die Klasse wurde nicht manuell zugeordnet, da das Script dies ja machen sollte …

    Klappen tut es bei uns bei Elementen in einem Akkordeon, einer Galerie oder den News. Nicht aber bei «normalen» ce_image-Elementen. Kann das sein? Wir verwenden RC2 von Contao 3.

  30. #30
    Contao-Fan Avatar von Babelfisch
    Registriert seit
    30.06.2009.
    Ort
    Leipzig
    Beiträge
    894

    Standard

    Für Contao 3 habe ich erst mal nur eine grundlegende Kompatibilität geschaffen. Probleme sind da bis zum Release nicht auszuschließen, da sich noch interne Sachen ändern. Läuft es denn in Contao 2 mit dem gleichen Bildern?

    Gruß
    Meine aktiven Contao-Projekte: LingoliaStiftung firmm

  31. #31
    Contao-Nutzer
    Registriert seit
    22.10.2010.
    Beiträge
    14

    Standard

    Hallo Leute,

    laut Thomas Fuchs ist es das Beste die Bidler NUR in der doppelten Auflösung, aber mit einer sehr geringen Qualität (JPG teils mit 20-30%) zu speichern. Dadurch erhält man bei beiden Größen eine sehr gute Qualität und kleine Bilder (die Artefakte sind wegen der kleinen Größe auf Retina nicht zu sehen und werden auf normalen eh rausgerechnet).

    Gibt es eine Möglichkeit im Contao einfach das automatische verkleinern der Bilder abzuschalten?

    Danke
    Roland

  32. #32
    Contao-Fan
    Registriert seit
    12.01.2011.
    Beiträge
    322

    Standard

    Naja, das wage ich stark zubezweifeln, dass man den Qualitätsverlust nicht sehen würde auf einem Retina Display.

    Die Eweriterung rechnet die Bilder genau auf die benötigte größe in einer super Qualität.

  33. #33
    Contao-Nutzer Avatar von truni
    Registriert seit
    18.08.2009.
    Ort
    Zürcher Unterland
    Beiträge
    166

    Gesicht zeigt die Zunge

    Zitat Zitat von Babelfisch Beitrag anzeigen
    Für Contao 3 habe ich erst mal nur eine grundlegende Kompatibilität geschaffen. Probleme sind da bis zum Release nicht auszuschließen, da sich noch interne Sachen ändern. Läuft es denn in Contao 2 mit dem gleichen Bildern?

    Gruß
    Also im konkreten Fall scheints nicht zu greifen (Contao 3):
    - Elementtyp Bild (ein Logo in PNG, ohne Grössenangaben, 1:1)
    - parallel liegt das Bild als @2x-Version vor im selben Verzeichnis
    - der Elementtyp wird per Insert-Tag in ein HTML Modul integriert und im Layout fix «verdrahtet»

    -> Contao lädt das HighRes-PNG leider nicht

    Eine andere Page unter Contao 3:
    - dort habe ich explizit eine DIV erstellt mit Hintergrundbild-Definition wie in der Extension-Beschreibung
    - das HighRes-PNG lädt.

    -> die Extension scheint mit Insert-Tags Probleme zu haben. Denn normale Bildelemente gehen ja mit dem Elementtyp Bild. Kann dem nachgegangen werden?

  34. #34
    Contao-Nutzer Avatar von truni
    Registriert seit
    18.08.2009.
    Ort
    Zürcher Unterland
    Beiträge
    166

    Frage Fehlverhalten ab 600 px

    Die Extension scheint nicht mehr zu funktionieren, wenn einem Bild mehr als 600px Breite vorgegeben wird. An was kann das liegen?

    EDIT: habs im GitHub gemeldet.
    Geändert von truni (23.11.2012 um 11:12 Uhr)

  35. #35
    Contao-Fan
    Registriert seit
    07.01.2011.
    Beiträge
    278

    Standard

    Leider funktioniert die Erweiterung anscheinend nicht bei Insert Tags. Wurde auch schon in Github angemerkt, wird es da noch ein Fix geben? Gerade für Logos etc finde ich das doch schon wichtig, ansonsten funktioniert die Erweiterung ja super.

  36. #36
    Contao-Fan Avatar von Babelfisch
    Registriert seit
    30.06.2009.
    Ort
    Leipzig
    Beiträge
    894

    Standard

    Zitat Zitat von mj1985 Beitrag anzeigen
    Leider funktioniert die Erweiterung anscheinend nicht bei Insert Tags. Wurde auch schon in Github angemerkt, wird es da noch ein Fix geben? Gerade für Logos etc finde ich das doch schon wichtig, ansonsten funktioniert die Erweiterung ja super.
    Da kann ich nichts machen und bin von Leo abhängig. Du kannst ja gerne dort dein Interesse an diesem Hook schreiben. Vielleicht erhöht das die Chance, dass er wirklich implementiert wird.

    Gruß
    Meine aktiven Contao-Projekte: LingoliaStiftung firmm

  37. #37
    Contao-Fan
    Registriert seit
    07.01.2011.
    Beiträge
    278

    Standard

    Danke, das werde ich tun!

  38. #38
    Contao-Nutzer Avatar von Richy
    Registriert seit
    13.05.2011.
    Ort
    63864 Glattbach
    Beiträge
    13

    Standard

    @Babelfisch
    echt klasse - super Erweiterung funktioniert bestens - danke...

  39. #39
    Contao-Nutzer Avatar von darki777
    Registriert seit
    03.07.2009.
    Beiträge
    63

    Standard

    Hallo,
    Ich finde den Lösungsansatz noch nicht ganz optimal. Die Erweiterung zwingt alle Geräte mit einem devicePixelRatio von größer als "1" die Datei bild.jpg sowie bild@2x.jpg aufgrund des Javascript Codes herunterzuladen. D.h. mehr Traffic, mehr Auslastung / Serverlast, genau das sollte ja vor allem bei Mobile Devices und limitiertem Datenvolumen verhindert werden. Das Script von Adaptive-Images geht hier einen ganz anderen und interessanten Weg (http://adaptive-images.com, bzw. http://adaptive-images.com/details.htm) der allerdings meiner Meinung nach seine Tücken hat.

    Mittels einer .htaccess, einer PHP Datei und einem Cookie (über JS) kann das PHP Script ermitteln welche Datei passend zur Bildschirmauflösung sowie Device Pixel Ratio ausgegeben werden muss, diese wird erst ausgegeben wenn der Vorgang abgeschlossen ist (simpel erklärt, eine Art "Bild-Livestream" immer angepasst an die Bildschirmeinstellung, und mit einem Caching-Mechanismus). Das ganze wird durch eigens definierte Breakpoints koordiniert, die man selbst festlegt, und anhand der definierten Breakpoints wird z.B. entschieden bis zu welcher Bildschirmauflösung und PixelRatio welche Einstellung vorgenommen werden soll (Beispiel-Breakpoints: "1280,1024,940,480"). D.h. ein Bild das 1000px breit ist, wird auf einem 940px breiten Monitor automatisch auf 940px herunterskaliert und falls es sich dabei um ein Mobiles Gerät handelt (das meist ein höheres Device Pixel Ratio hat) auf das Doppelte skaliert.

    Nehmen wir aber mal an dass die Bilddatei nur 250px Breit ist, dann wird nichts getan, obwohl das Gerät anhand der Device Pixel Ratio eine eigentlich größere Bilddatei bräuchte. Soll heißen, dass Bilder die sogar unter die kleinste Breakpoint-Grenze fallen nicht berücksichtigt werden, und selbst wenn man einen Breakpoint von 200px setzt würde es nichts bewirken, da es kaum Bildschirmgrößen gibt die weniger als 200px Breite besitzen (aber genau hierauf baut ja leider das gesamte Script auf). Das ganze Problem basiert also darauf dass das Script nur nach einem Bildschirm-basierten "max-width" Konzept arbeitet. Das Script ist klasse für fluide Bilder und um Traffic zu sparen, aber keine vollwertige Lösung für das PixelRatio Problem.

    Womit ich mit diesem Roman eigentlich hinauswollte ist, dass man die Erweiterung ebenfalls nach einem ähnlichen Konzept aufbauen könnte, nur mit dem Unterschied dass hierbei das DevicePixelRatio im Fokus steht. D.h. Cookie direkt per JS setzen (kein Domready, sondern direkte Ausführung, siehe Beispielcode von Adaptive-Images) und per .htaccess + PHP die passende Bilddatei anhand der PixelRatio cachen / ausgeben. Die beste Lösung wäre natürlich wenn man beides zusammen haben könnte, aber das sind vorerst einmal Wunschvorstellungen ;-) Falls mal Unterstützung beim Coden benötigt wird stelle ich mich gerne zur Verfügung.


    Viele Grüße
    darki aka pixelmount

  40. #40
    Contao-Nutzer Avatar von darki777
    Registriert seit
    03.07.2009.
    Beiträge
    63

    Standard

    Hab kurz dazu eine temporäre Lösung geschrieben die als Ansatz dienen könnte. Folgende Schritte sind notwendig:

    1. Installiert die Erweiterung "retina_image"
    2. Fügt in eurem Layout-Template folgende Zeile im Head Bereich hinzu (dieser Codeblock muss, von der Reihenfolge her, vor allen anderen Javascript Dateien eingefügt werden):
    Code:
    <script>document.cookie='resolution='+Math.max(screen.width,screen.height)+("devicePixelRatio" in window ? ","+devicePixelRatio : ",1")+'; path=/';</script>
    3 Erstellt euch im /template Verzeichnis eine Datei Namens "ce_image.html5" und fügt folgenden Inhalt ein:
    Code:
    <?php    
        if(isset($_COOKIE['resolution'])){
            $screenResolution = explode(",", $_COOKIE['resolution']);
            $screenWidth = (int) $screenResolution[0];
            $screenPixelRatio = isset($screenResolution[1]) ? $screenResolution[1] : 1;
            
            $imgWidth = $this->arrSize[0];
            $imgHeight = $this->arrSize[1];
            $imgPathinfo = pathinfo($this->src);
            $imgSrcRetina = $screenPixelRatio>1 ? $imgPathinfo["dirname"] . "/" . $imgPathinfo["filename"] . "@2x" . "." . $imgPathinfo["extension"] : $imgSrc;
            $imgSrc = $screenPixelRatio>1 && file_exists($imgSrcRetina) ? $imgSrcRetina : $this->src;
        } else {
            $imgSrc = $this->src;
        }
    ?>
    
    <div class="<?php echo $this->class; ?> block"<?php echo $this->cssID; ?><?php if ($this->style): ?> style="<?php echo $this->style; ?>"<?php endif; ?>>
    <?php if ($this->headline): ?>
    
    <<?php echo $this->hl; ?>><?php echo $this->headline; ?></<?php echo $this->hl; ?>>
    <?php endif; ?>
    
    <figure class="image_container"<?php if ($this->margin): ?> style="<?php echo $this->margin; ?>"<?php endif; ?>>
    <?php if ($this->href): ?>
    <a href="<?php echo $this->href; ?>"<?php if ($this->linkTitle): ?> title="<?php echo $this->linkTitle; ?>"<?php endif; ?><?php echo $this->attributes; ?>>
    <?php endif; ?>
    <img src="<?php echo $imgSrc; ?>"<?php echo $this->imgSize; ?> alt="<?php echo $this->alt; ?>"<?php if ($this->title): ?> title="<?php echo $this->title; ?>"<?php endif; ?>>
    <?php if ($this->href): ?>
    </a>
    <?php endif; ?>
    <?php if ($this->caption): ?>
    <figcaption class="caption" style="width:<?php echo $this->arrSize[0]; ?>px"><?php echo $this->caption; ?></figcaption>
    <?php endif; ?>
    </figure>
    
    </div>
    Ab jetzt werden alle Dateien die als Bildartikel eingefügt werden serverseitig als Retina-Bild eingefügt. D.h. es muss zur Laufzeit kein Javascript mehr benutzt werden um das "@2x" zum Bildattribut "src" hinzuzufügen, der Vorteil dadurch ist dass auf Retina Geräten die Bilddateien nicht mehr zwei mal geladen werden müssen (also bild.jpg + bild@2x.jpg). Ich hoffe die Extension kann dahingehend erweitert werden, dass dies für alle Bilder + Insert Tags und nicht nur für Bilder innerhalb von Artikeln gilt.


    Viele Grüße
    darki
    Geändert von darki777 (27.01.2013 um 12:15 Uhr)

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •