Jump to content
xt:Commerce Community Forum

Gif Animation als weiteres Artikelbild


CONACORD

Recommended Posts

Hallo!

Für uns ist es notwendig, dass wir zusätzlich zu den Artikelbildern eine GIF-Animation anzeigen.

Das Hochladen und Zuordnern hat perfekt geklappt. Die Gif-Animationen werden allerdings in der Artikeldetail-Seite als statisches Bild angezeigt. Erst, wenn man mit der Maus auf das Bild geht, sieht man die Animation als vergrößerten Ausschnitt in dem Zoomfenster.

Es ist also nicht möglich, die Animation als Ganzes ansehen zu können ohne diese durch einen Klick auf Originalgröße anzeigen zu lassen.

Das ließe sich lösen, indem die Gif in der Artikelseite ohne Mausbewegung funktionieren würde.

Eine weitere Möglichkeit wäre, dass das kleine Fenster, welches erscheint, wenn man die Maus auf das Bild bewegt, nicht nur einen Ausschnitt des Bildes zeigt, sondern alles.

Wenn ich mit der Größe des Bildes herumspiele, würde letzteres funktionieren, jedoch will ich die Originalgröße des Bildes nicht zu viel verkleinern.

Gibt es dafür Lösungsansätze?

Dazu frage ich mich noch:
Kann man die Zoomfunktion für Artikel komplett ausstellen?
Kann man die Zoomfunktion für jeden Artikel einzeln ausstellen?

Beispiel auf unserer Internetseite: http://s648076834.online.de/xtCommerce/index.php?page=product&info=6

Vielen Dank für Eure Hilfe.

Link to comment
Share on other sites

Hallo,

scheinbar wird beim Image-Processing die "animated gif"-Funktionalität nicht mit übernommen, wenn das "info"-Bild erzeugt wird.

Beim Klick auf das Bild wird aber das Original gezogen und dort gehts natürlich.

Im Prinzip könnte man doch im Template den Bildnamen auf ".gif" ( per Smarty ) abfragen und in dem Fall nicht das "info"-Bild ziehen, sondern das Original, per CSS passend zurechtgestutzt ...

Grüsse

Link to comment
Share on other sites

Vielen Dank für Deine Antwort!

Der Lösungsansatz klingt logisch. Leider habe ich wenig Erfahrung in dem Gebiet.

Wo genau muss ich solch eine Anfrage denn einbauen?

Kann mir jemand genauere Informationen geben, wie ich so eine Anfrage einbaue?

Vielen Dank für Eure Hilfe!

 

Link to comment
Share on other sites

  • 3 weeks later...
  • 2 weeks later...

Im Moment wird es jetzt so bei uns umgesetzt, dass wir vor jedem GIF-Import im Backend das Image Processing manuell im Backend ausschalten.

Kann mir jemand einen Tipp geben, in welcher Datei ich die Abfrage nach einer GIF-Datei und das damit verbundene Auslassen des Image Processing einbauen kann?

Wenn ich das nicht selber schaffe, wo kann man solch eine Änderung kostenpflichtig erledigen lassen?

Ich bin für jede Hilfe dankbar.

Link to comment
Share on other sites

  • 4 weeks later...

class.image.php

Nutzt bei .gif Datein die function 

imagecreatefromgif

GD-Bibliothek:

http://php.net/manual/de/function.imagecreatefromgif.php

 

Hinweis:

Beim Einlesen einer animierten GIF-Datei wird nur das erste Frame genutzt.

 

Also wenn ich das jetzt richtig gelesen habe unterstützt die GD-Lib animierte gifs nicht.

Vieleicht so:

Mit imagecraft

https://github.com/coldume/imagecraft

Link to comment
Share on other sites

Mal 'ne ganz blöde Frage: Was passiert denn, wenn Ihr im Backend in Inhalte -> Media -> Bildtypen -> Euren_Bildtypen_bearbeiten das Image-Processing auf "false" setzt?

Nach meinem Kenntnisstand wird dann für diese Bildklasse kein Processing mehr durchgeführt. Dann sollte das animierte Gif doch auch erscheinen.

Link to comment
Share on other sites

4 hours ago, jwinkel said:

Nach meinem Kenntnisstand wird dann für diese Bildklasse kein Processing mehr durchgeführt. Dann sollte das animierte Gif doch auch erscheinen.

Theoretisch ja. (Habe es noch nie ausprobiert)

Aber man müsste halt dann im Shop (vermutlich) immer {img type=m_org ... verwenden.

Wenn man {img type=m_org ... verwendet geht es halt auch mit aktiviertem Imageprocessing...

Link to comment
Share on other sites

Das sollte anders gehen:

  1. Verzeichnis unter /media/images auf dem Server anlegen, zum Beispiel /media/images/unprocessed, und Rechte anpassen falls nötig
  2. Bildtyp anlegen: Inhalte -> Media -> Bildtypen -> Neu
    - Verzeichnis: unprocessed
    - Breite und Höhe nach der Größe der Gif-Bilder einstellen. Sollte keine Auswirkungen haben, da ja kein Image-Processing stattfindet.
    - Wasserzeichen: Nein
    - Images Processing: Nein
    - Klasse: Artikelbild
  3. Image Processing starten. Dabei sollten die Bilder ohne Bearbeitung in den Ordner kopiert werden.

Im Template dann

{if strpos($products_image, '.gif') != false}
  {img img=$products_image type=m_unprocessed alt=$products_name|escape:"html" width=auto height=auto itemprop=image}
{else}
  {img img=$products_image type=m_info alt=$products_name|escape:"html" width=auto height=auto itemprop=image}
{/if}

Aber das ist auch von mir nicht getestet.

Link to comment
Share on other sites

Wenn auf dem Server 

ImageMagick

verfügbar ist dann gehts auch so das er die animierten bilder scaliert und diese animiert bleiben.

http://php.net/manual/en/book.imagick.php

 

 

in xtCommerce/xtFramework/classes

class.resize_animate_gif.php anlegen mit diesem inhalt:

class resize_animate_gif
{
    function resize_gif($resource, $width = 0, $height = 0, $filename)
    {

        $image = new Imagick($resource);

        $image = $image->coalesceImages();

        foreach ($image as $frame) {

            $frame->thumbnailImage($width, $height);
            $frame->setImagePage($width, $height, 0, 0);
        }


        $image->writeImages($filename, true);

        $image->destroy();

        return true;

    }

}

 

dann in der class.image.php in Zeille 33 einfügen

 

require_once (_SRV_WEBROOT._SRV_WEB_FRAMEWORK.'classes/class.resize_animate_gif.php');

 

In der selben class.image.php die abfrage so auskommentieren

 

/* if ($this->extension=='.gif')
     $image_source = imagecreatefromgif($this->resource);*/

Dafür das darunter einfügen

 

if ($this->extension=='.gif')
{
    $img = new resize_animate_gif();
    $img = $img->resize_gif($this->resource,$this->max_width,$this->max_height,$this->target_dir.$this->image_name);
}

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
  • Create New...