Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module ›

Imagecache legt alle Bilder unnötigerweise doppelt an

Eingetragen von DrupalFan (1646)
am 18.01.2010 - 18:20 Uhr in
  • Module
  • Drupal 6.x

Bei einem Projekte gibt es tausende Bilder. Ein Bild wird jeweils in einem Node angezeigt. Dort soll das Bild die Breite von 200px haben.

Von den tausenden Bildern sind der überwiegende Teil der Bilder genau mit 200px Breit abgespeichert. Man könnte diese direkt anzeigen. Da aber einige Bilder (ein paar Prozent) größer sind (500px oder 800px breit, etc), macht es Sinn, imagecache einzusetzen.

Ein Preset in Imagecache mit Skalierung auf width=205 (keine Höhe, die ist egal) sollte nun aber so funktionieren, dass nur jene Bilder, die größer als 205 Pixel breits sind von Imagecache skaliert werden und alle anderen, also die meisten die 200px breit sind, einfach direkt angezeigt werden, ohne ein Imagecache Bild zu erzeugen, da sonst tausende Bilder doppelt gespeichert werden unnötigerweise.

Egal wie man das Imagecache-Preset auch macht, anstatt die orginalen anzuzeigen, werden 1:1-Kopien von tausenden Bildern erzeugt im Imagecache-preset-Verzeichnis.

Wozu? Kann man das nicht abstellen? Wenn ein Bild schon passt, kein Scale etc von Imagecache durchgeführt wird, sollte Imagecache so schlau sein und direkt auf das Orignal verlinken anstatt das Original zuerst 1:1 zu kopieren und dann zu verlinken.

Gibt es dafür eine Lösung?
Danke.

‹ GMap für Dummies Custom Forms in Drupal ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi, vielleicht kannst du das

Eingetragen von Kars-T (1473)
am 18.01.2010 - 18:29 Uhr

Hi,

vielleicht kannst du das über die Theming Funktion erreichen.
http://drupalcontrib.org/api/function/theme_imagecache/6

Wenn du hier eine weiche einbaust, die unter besonderen Umständen dann doch nur die normale URL zurück gibt, dann sollte ImageCache nicht aktiv werden. Der Trick ist ja der ReWrite des Pfades, wodurch ImageCache erst aktiv wird. Und den verhinderst du einfach.

---

Viele Grüße,

Kars-T
XING | comm-press

Viele Grüße,

Kars-T

  • Anmelden oder Registrieren um Kommentare zu schreiben

If in imagecache fehlt :-)

Eingetragen von DrupalFan (1646)
am 18.01.2010 - 18:45 Uhr

Klar, genau so wollte ich das ja auch machen, aber mir geht es darum, eben nicht programmieren zu müssen.

Denn jeder Programmier würde ein "if .." einbauen um das Verdoppeln von tausenden Bildern zu verhindern, aber warum nur in aller Welt ist dieses if nicht in imagecache schon drinnen???

  • Anmelden oder Registrieren um Kommentare zu schreiben

Spezieller Fall

Eingetragen von Kars-T (1473)
am 18.01.2010 - 18:55 Uhr

Naja, das was du da willst, würde aber den Caching Effekt unterwandern. Du musst dann mehr Logik ausführen, jedesmal, wenn eine Bild URL aufgebaut wird. Und das ganze dann noch so allgemein gültig zu halten, das es über die GUI zu konfigurieren ist? Na ich weiß nicht und denke, das es schon so gut ist, wie es ist.

---

Viele Grüße,

Kars-T
XING | comm-press

Viele Grüße,

Kars-T

  • Anmelden oder Registrieren um Kommentare zu schreiben

Wäre effizienter, schneller, sinnvoller

Eingetragen von DrupalFan (1646)
am 19.01.2010 - 15:05 Uhr

Es wäre nur eine einzige If-Abfrage (eventuell abschaltbar im Admin-Bereich):
- Wenn das Originalbild den Kriterien entspricht (also das Imagecache-Preset keine Änderung, keien Verkleidung, rein gar nichts bewirkt, was in vielen Fällen der Fall ist), dann das Original-Bild anzeigen. Andernfalls das Imagecache-Bild anzeigen, denn nur dann macht es Sinn dieses anzuzeigen, weil es eine andere Größe hat als das Original-Bild.

Und diese eine oder 2 Zeilen Code sind wirklich nicht viel, es ist vollkommen allgemeingültig (Originalbild bleibt Original->Original anzeigen) und das Modul imagecache enthält derzeit ganz bestimmt viele viele Zeilen Code, die aufgerufen werden, allein um festzustellen, ob eine Aktion erforderlich ist oder nicht. 2 weitere Zeilen, die das Erstellen von Tausenden 1:1 Kopien der Originalbilder verhindern würden, können da niemanden stören, weil es einfach viele Vorteile hat.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Zitat: - Wenn das

Eingetragen von Kars-T (1473)
am 19.01.2010 - 15:13 Uhr
Zitat:

- Wenn das Originalbild den Kriterien entspricht (also das Imagecache-Preset keine Änderung, keien Verkleidung, rein gar nichts bewirkt, was in vielen Fällen der Fall ist), dann das Original-Bild anzeigen. Andernfalls das Imagecache-Bild anzeigen, denn nur dann macht es Sinn dieses anzuzeigen, weil es eine andere Größe hat als das Original-Bild.

Ich denke nicht, das das ein Zweizeiler ist, da "wenn das Preset nichts bewirkt" alles mögliche sein kann. Aber wenn ich mich irre und das so einfach ist, dann schreib doch einen Patch und alle werden es dir danken! :D

---

Viele Grüße,

Kars-T
XING | comm-press

Viele Grüße,

Kars-T

  • Anmelden oder Registrieren um Kommentare zu schreiben

DrupalFan schrieb Es wäre

Eingetragen von bspellmeyer (37)
am 19.01.2010 - 19:37 Uhr
DrupalFan schrieb

Es wäre nur eine einzige If-Abfrage (eventuell abschaltbar im Admin-Bereich):

Wenn du eine Bildergalerie mit 50 Einträgen pro Seite anzeigst, wären das bereits 50 IF-Abfragen. Sind diese Bilder dann noch entsprechend groß, wird unnötig viel Speicher verschwendet um zu ermitteln, ob die Bilder von Imagecache wirklich angepasst werden müssen. Wenig sinnvoll in meinen Augen.

http://www.twitter.com/bspellmeyer

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ein IF ist nicht das Thema

Eingetragen von DrupalFan (1646)
am 19.01.2010 - 19:41 Uhr

Leider total falsch.
Es gibt nur ein Bild in einem Node, es gibt daher nur einen IF-Aufruf. Dein Ansatz ist falsch, da dürfte man doch überhaupt keinen Code mehr schreiben, wenn man jetzt nicht mehr ein einziges IF pro Bild machen darf. Drupal besteht aus so viel redundantem Code und ist daher auch sehr langsam, hier über ein IF zu diskutieren ist nicht sinnvoll, aber man kann durchaus darüber diskutieren, wie man Drupal grundsätzlich um einen großen Faktor beschleunigen kann, das ist schon Thema.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Imagecache-Dateien nicht löschbar

Eingetragen von DrupalFan (1646)
am 19.01.2010 - 20:03 Uhr

Jetzt kommt auch noch dazu, dass einmal mit Imagecache erstellte Bilder nicht mehr gelöscht werden können, weil die entsprechenden Access-Rechte fehlen und nur Drupal die Dateien löschen könnte, man aber per FTP keine Chance hat.

Auch per PHP-Script ist das nicht so einfach.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Imaagecash bietet die

Eingetragen von bspellmeyer (37)
am 19.01.2010 - 20:05 Uhr

Imagecache bietet die Möglichkeit, alle Bilder im Cache eines Presets zu löschen. Schau mal nach Flush Preset.

http://www.twitter.com/bspellmeyer

  • Anmelden oder Registrieren um Kommentare zu schreiben

DrupalFan schrieb Leider

Eingetragen von bspellmeyer (37)
am 19.01.2010 - 20:10 Uhr
DrupalFan schrieb

Leider total falsch.
Es gibt nur ein Bild in einem Node, es gibt daher nur einen IF-Aufruf. Dein Ansatz ist falsch, da dürfte man doch überhaupt keinen Code mehr schreiben, wenn man jetzt nicht mehr ein einziges IF pro Bild machen darf. Drupal besteht aus so viel redundantem Code und ist daher auch sehr langsam, hier über ein IF zu diskutieren ist nicht sinnvoll, aber man kann durchaus darüber diskutieren, wie man Drupal grundsätzlich um einen großen Faktor beschleunigen kann, das ist schon Thema.

Auf der Übersichtsseite einer Bildergalerie werden bei mir 50 Thumbnails gleichzeitig angezeigt. Und alle Thumbnails müssen daher auch gleichzeitig geprüft werden. Das macht 50 hochauflösende Bilder, die für eine Größenermitllung in den Speicher geladen werden müssen. Bei jedem einzelnen Aufruf der Galerie. In meinen Augen immer noch nixht sinnvoll.

http://www.twitter.com/bspellmeyer

  • Anmelden oder Registrieren um Kommentare zu schreiben

So würd ich das nicht

Eingetragen von DrupalFan (1646)
am 19.01.2010 - 20:22 Uhr

So würd ich das nicht machen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

DrupalFan schrieb So würd

Eingetragen von bspellmeyer (37)
am 19.01.2010 - 20:25 Uhr
DrupalFan schrieb

So würd ich das nicht machen.

Was würdest du wie nicht machen? Und vor allem: Wie würdest du es machen?

http://www.twitter.com/bspellmeyer

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich würds einfach in

Eingetragen von DrupalFan (1646)
am 19.01.2010 - 20:50 Uhr

Ich würds einfach in Imagecache korrekt einbauen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Da Imagecache aber für ein

Eingetragen von wla (9333)
am 19.01.2010 - 21:43 Uhr

Da Imagecache aber für ein Preset eine Reihe von verschiedenen Operationen ausführen kann (z.b. 2 x Scale, 1 Crop), ist es nicht simpel festzustellen, ob das Original-Bild dem bereits entspricht. Und nur am Ende einer Bearbeitungskette weiß man, was los ist. Wenn dann noch Bearbeitungsschritte aus Imagecache-Aktions dazukommen.....
In Kürze, es ist nicht mal eben hinzubekommen und wurde deshalb weggelassen. Wenn Du was anderes möchtest, muß Du es selbst codieren. Außerdem ist nach einem ersten Aufruf des Bildes im jeweiligen Preset das Bild im Presetverzeichnis gespeichert und das Performance-Problem ist keines mehr.

Beste Grüße
Werner

.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Seite auf Xamp wird nicht geladen
  • [simplenews_stats] [D10] Keine Öffnungen/Ansichten der Newsletter werden gezählt
  • Theme Olivero - Rand entfernen?
  • Olivero veraendern
  • Upgrade Drupal 9 auf 10
  • Matomo(?) in Seite, aber Deinstalliert!
  • Upgrade Drupal 7 auf Drupal 9 / Inhalt erstellen zeigt nur Fehler an
  • Fehlermeldung nach Update auf Drupal 10
  • Wie Button erstellen?
  • footnotes bei D10 und CKE5
  • ckeditor Bilder skalieren
  • Bild in welcher Form die Beschriftung!
Weiter

Neue Kommentare

  • Releases Stand 20-9-2023
    vor 15 Stunden 48 Minuten
  • Hi, Das ist leider nicht das
    vor 1 Tag 10 Stunden
  • Wie plötzlich passierte
    vor 2 Tagen 14 Stunden
  • Sowas geht immer mit
    vor 4 Tagen 13 Stunden
  • vielen Dank fuer Deine Tipps.
    vor 4 Tagen 19 Stunden
  • Routinefrage: Kann es ein
    vor 5 Tagen 14 Stunden
  • @onkel Bob,Erst mal
    vor 1 Woche 5 Tagen
  • Prinzipiell geht das schon.
    vor 1 Woche 5 Tagen
  • Rubi_2021 schriebWie genau
    vor 2 Wochen 4 Tagen
  • Ok, war ein Versuch. ;-) Kann
    vor 2 Wochen 4 Tagen

Statistik

Beiträge im Forum: 248805
Registrierte User: 19832

Neue User:

  • elkb
  • J. Berten
  • vohome

» Alle User anzeigen

User nach Punkten sortiert:
wla9333
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3845
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 3 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association