Shop Support News Archive - Shopbetreiber News -> Forum : Bessere Bildverarbeitung Von Xt-c Möglich?
Ifthatsthewayitis
10.12.2006, 21:42
Hallo,
ich bin sehr unzufrieden mit der Bildverarbeitung von XT-C v3 und ich kann mir nicht vorstellen das die meisten Leute damit zufrieden sind.
Hat es schon jemand geschafft hauptsächlich diese Veränderungen durchzuführen:[ ]Verhundertn das Bilder überstreckt werden (also ein 200px breites Bild auf 300px gestreckt wird, wenn diese Optionen bei XT-C angegeben sind
[ ]Vernünftige Darstellung des Popup? Zum Beispiel das die Größe des Popups stimmt? Ich habe mir fast überlegt Lightbox einzubauen (http://www.huddletogether.com/projects/lightbox/), damit es ohne Popup geht
Gibt es irgendwelche Alternativen zu der eingebauten Bildverarbeitung bzw. hat schonmal jemand überarbeitete Versionen davon erstellt?
voliere.net
10.12.2006, 23:56
verstehe ich nicht ganz. wenn ein ur-bild z. bsp. nur 120x120 px ist, dann werden die bilder nicht größer angezeigt. die popup-geschnichte kannst du ja auch raus nehmen. ich habe mit der bildbe-/verarbeitung keine probleme.
EDIT: ich war im irrtum - bei mir handelte es sich um eine manuelle nachbearbeitung - sorry
HarryBoo
11.12.2006, 00:22
Hallo Ifthatsthewayitis,
da scheinst du wohl die Logik des Shopsystems nicht erkannt zu haben. :)
Du hast ein Bild von 100 x 150 px., dann darf die Einstellung im Admin für die Bildgröße nicht größer sein.
Ansonsten wird das Bild so vergrößert, dass es nicht mehr schön aussieht.
Umgekehrt geht das.
Du hast ein Bild von 500 x 500 px und das rechnet der Shop dann auf die voreingestellten Größen runter.
Die Lösung zu deinem Problem, größere Grafiken :)
Ich hoffe mich einiger Maßen verständlich ausgedrückt zu haben.
Ansonsten frage noch mal nach.
Grüße
HarryBoo
Moment, also wenn ich mich nicht außerordentlich doof angestellt hab (xtc 3.04 SP1), scheint's tatsächlich zu stimmen: Wenn die Original-Bilder kleiner sind als die Größe, auf die xtc Artikelbilder "zurechtrechnen" soll, werden diese kleineren Bilder tatsächlich "hochgeblasen" und vergrößert abgespeichert. Und nicht bloß im Browser vergrößert angezeigt.
Da das Phänomen in meinem Fall nur bei zwei von xx Bildern aufgetreten ist (aber von denen lag dann tatsächlich ein vom System vergrößertes JPEG im entsprechenden Ordner), hab ich mich da nicht allzu intensiv mit beschäftigt - und den beiden Abbildungen (kurzerhand Quick'n'Dirty) mit Photoshop ein bisschen mehr "weißen Rand" gegeben ...
Jedenfalls hab ich nicht herausgefunden, wie man das "größer-Rechnen" von "zu kleinen" Bildern unterbinden kann.
Wie macht man das am einfachsten?
naja man sollte einfach ordentliche artikelbilder nehmen wie Harry vorher schon sagte.
Ich meine ihr wollt doch was verkaufen...im Internet...was der Kunde nicht anfassen kann...jetzt soll er auch noch (verwaschene) Bilder mit der Lupe anschauen ?
Stimmt schon.
Aber nicht immer gibt's von allem Bilder in passender Größe und nicht für jeden Artikel sind Bilder mit den Maßen ... sagen wir mal 400 x 300 Pixel (o.ä.) auch wirklich nötig. Schrauben? Adapter-Stecker ...?
Und JPEGs vergrößern ist sowieso immer kritisch, da werden die Kompressions-Artefakte schön mitvergrößert - und plötzlich hat man überdeutliche Schachbrettstrukturen in einem Riesenbild von einer Mini-Schraube, das mit seinen 120 x 257 Pixeln ursprünglich mal einigermaßen scharf und ... eigentlich auch groß genug gewesen ist.
Asche über mein Haupt, diese beiden Teile hab ich einfach auf einen 400 x 300 Pixel großen Hintergrund gesetzt. Ging schneller als sie selbst zu fotografieren oder den Code von xtCommerce zu durchwühlen.
:-)
Aber die Frage bleibt: wie kann man xtc dazu bewegen, nur große Bilder zu verkleinern und nicht kleine Bilder zu vergrößern?
Ifthatsthewayitis
11.12.2006, 23:33
Ich kann gut verstehen das man dem Kunden die besten Bilder liefern sollte, jedoch ist es mir einfach manchmal bzw. doch auch relativ häufig nicht möglich die maximalen Auflösungen einzuhalten, da ich auf Material von den Herstellern/Verlagen angewiesen bin.
Mich würde interessieren ob man da nicht viellenicht irgendwas mit einer billigen if-Abfrage ändern könnte, also
"if Bild Auflösung schon kleiner als Maximum dann nicht verändern, else verändern".
Hat in der Rnichtung schon irgendjemand etwas unternommen?
kunigunde
13.12.2006, 01:20
''>ZITAT</div>Ich habe mir fast überlegt Lightbox einzubauen (http://www.huddletogether.com/projects/lightbox/)[/b]
schon geschehen, jedoch eine andere version der lightbox:
devido.de (http://anonym.to/?http://devido.de/product_info.php/info/p246_Video7-L22WD--Multimedia-TCO03-Wide-Panel-TFT-22-0-.html)
funktioniert auch mit mehreren bildern.
''>ZITAT(Ifthatsthewayitis @ Dec 11 2006, 23:33) 16573
Mich würde interessieren ob man da nicht viellenicht irgendwas mit einer billigen if-Abfrage ändern könnte, also
"if Bild Auflösung schon kleiner als Maximum dann nicht verändern, else verändern".
[/b]
Getestet auf: xtc304sp2.1
Datei admin/includes/classes/imagemanipulator_gd2.php, Zeile ca. 56
Datei admin/includes/classes/imagemanipulator_gd1.php, Zeile ca. 50
Original:
************$this->o = ($this->i / $this->m);
************$this->p = ($this->j / $this->n);
************$this->q = ($this->o > $this->p) ? $this->m : round($this->i / $this->p); // width
************$this->r = ($this->o > $this->p) ? round($this->j / $this->o) : $this->n; // height
************}
********$this->s = ($this->k < 4) ? ($this->k < 3) ? ($this->k < 2) ? ($this->k < 1) ? Null : imagecreatefromgif($this->a) : imagecreatefromjpeg($this->a) : imagecreatefrompng($this->a) : Null;
********if($this->s !== Null)
************{
************$this->t = imagecreatetruecolor($this->q, $this->r); // created thumbnail reference
************$this->u = imagecopyresampled($this->t, $this->s, 0, 0, 0, 0, $this->q, $this->r, $this->i, $this->j);
************}
********}
Geändert:
************$this->o = ($this->i / $this->m);
************$this->p = ($this->j / $this->n);
************$this->q = ($this->o > $this->p) ? $this->m : round($this->i / $this->p); // width
************$this->r = ($this->o > $this->p) ? round($this->j / $this->o) : $this->n; // height
// ---- verhundertn bildvergoesserung anfang ---------------
******if( ($this->i < $this->m) || ($this->j < $this->n) ) // neue Breite od. Hoehe groesse als Original
********{
********$this->q = $this->i; // width
********$this->r = $this->j; // height
********}
// ---- verhundertn bildvergoesserung ende ---------------
************}
********$this->s = ($this->k < 4) ? ($this->k < 3) ? ($this->k < 2) ? ($this->k < 1) ? Null : imagecreatefromgif($this->a) : imagecreatefromjpeg($this->a) : imagecreatefrompng($this->a) : Null;
********if($this->s !== Null)
************{
************$this->t = imagecreatetruecolor($this->q, $this->r); // created thumbnail reference
************$this->u = imagecopyresampled($this->t, $this->s, 0, 0, 0, 0, $this->q, $this->r, $this->i, $this->j);
************}
********}
Gruss
Hen
Ifthatsthewayitis
20.12.2006, 19:33
Also die Modifikation funktioniert sehr gut und ich denke jeder sollte sie einbauen, da sie pixelige Bilder verhundertt, wenn sie zu klein für die max Werte sind.
Jetzt nochmal zu dem Einbau von einem Popup Ersatz.
Weiß zufällig jemand wie ich einen direkten Link auf die Bilddateien einbauen kann? Also im Moment sind diese Links alle {POPUP_...} oder so und geben dann den JavaScript Link für das Popup aus. Ich bräuchte jetzt möglichst eine Möglichkeit einfach nur den Link zur Bilddatei direkt zu bekommen, damit ich die Erweiterung lenicht einbauen kann.
Bzw. viellenicht kann konigunde seine Lösung für alle bereitstellen? Übrigens dein Schließen Button rutscht aus dem Bild raus und ragt drüberhinaus, das sieht nicht ganz so schön aus.
kunigunde
20.12.2006, 20:28
ich setz mich heut abend mal an die anleitung :-)
p.s.: der button ragt nur im fox heraus, habe ich festgestellt, danke für den hinweis.
HarryBoo
20.12.2006, 20:30
Schau dir mal dieses vom ne-xt Forum an :Hier klicken. (http://anonym.to/?http://ne-xt.de/kb.php?mode=article&k=13)
Viellenicht behebt das dein Problem.
Wenn nicht nützlich ist es allemal :)
kunigunde
21.12.2006, 09:36
Anleitung für die Lightbox auf der Produkt info seite:
Knowledge Base ne-xt.de link entfernt
Ifthatsthewayitis
21.12.2006, 17:12
Vielen Dank für diesen sehr hilfreichen Artikel! Es funktioniert bei mir jedoch ist glaube ich ein kleiner Fehler drin:
#prevLink { left: 0; float: left; background: url(/images/prevlabel.gif) left 100% no-repeat;}
#nextLink { right: 0; float: right; background: url(/images/nextlabel.gif) right 100% no-repeat;}
#prevLink:hover, #prevLink:viisted:hover {**}
#nextLink:hover, #nextLink:viisted:hover {**}
Bei mir musste das Verzeichnis von den beiden Bildern korrigiert werden, also ohne .., damit die Bilder angezeigt werden. Die Prozentzahlen sind jetzt von mir schon angepasst worden. Ich denke ich werde mir auch noch schönere Buttons einfallen lassen bzw. designen.
Diese Erweiterung kann ich jedem nur empfehlen!
Ifthatsthewayitis
21.12.2006, 23:25
Also bei mir ist jetzt noch folgendes passiert, das ab dem 2. Bild die Bilder aus dem info_images Verzeichnis benutzt werden und nicht die popup_images Bilder.
Habe das jetzt mal so gelöst:
************foreach ($mo_images as $img) {
****************/ $mo_img = DIR_WS_INFO_IMAGES.$img['image_name']; /
****************//ne-xt.de
****************$mo_img = DIR_WS_POPUP_IMAGES.$img['image_name'];
****************$info_smarty->assign('PRODUCTS_IMAGE_POPUP_'.$img['image_nr'], $mo_img);
****************//ne-xt.de
****************...
Hattest du das vorgesehen mit den info_images oder war es ein versehen? Viellenicht übersehe ich ja gerade irgendeinen Sinn davon!?
Also nochmal vielen Dank für die Lösung! Gefällt mir sehr gut, viel besser als das blöde Popup!
wolfganggeisler
22.12.2006, 11:05
''>ZITAT(hendrik @ Dec 13 2006, 14:04) 16642
Getestet auf: xtc304sp2.1
Datei admin/includes/classes/imagemanipulator_gd2.php, Zeile ca. 56
Datei admin/includes/classes/imagemanipulator_gd1.php, Zeile ca. 50
Original:
************$this->o = ($this->i / $this->m);
************$this->p = ($this->j / $this->n);
************$this->q = ($this->o > $this->p) ? $this->m : round($this->i / $this->p); // width
************$this->r = ($this->o > $this->p) ? round($this->j / $this->o) : $this->n; // height
************}
********$this->s = ($this->k < 4) ? ($this->k < 3) ? ($this->k < 2) ? ($this->k < 1) ? Null : imagecreatefromgif($this->a) : imagecreatefromjpeg($this->a) : imagecreatefrompng($this->a) : Null;
********if($this->s !== Null)
************{
************$this->t = imagecreatetruecolor($this->q, $this->r); // created thumbnail reference
************$this->u = imagecopyresampled($this->t, $this->s, 0, 0, 0, 0, $this->q, $this->r, $this->i, $this->j);
************}
********}
Geändert:
************$this->o = ($this->i / $this->m);
************$this->p = ($this->j / $this->n);
************$this->q = ($this->o > $this->p) ? $this->m : round($this->i / $this->p); // width
************$this->r = ($this->o > $this->p) ? round($this->j / $this->o) : $this->n; // height
// ---- verhundertn bildvergoesserung anfang ---------------
******if( ($this->i < $this->m) || ($this->j < $this->n) ) // neue Breite od. Hoehe groesse als Original
********{
********$this->q = $this->i; // width
********$this->r = $this->j; // height
********}
// ---- verhundertn bildvergoesserung ende ---------------
************}
********$this->s = ($this->k < 4) ? ($this->k < 3) ? ($this->k < 2) ? ($this->k < 1) ? Null : imagecreatefromgif($this->a) : imagecreatefromjpeg($this->a) : imagecreatefrompng($this->a) : Null;
********if($this->s !== Null)
************{
************$this->t = imagecreatetruecolor($this->q, $this->r); // created thumbnail reference
************$this->u = imagecopyresampled($this->t, $this->s, 0, 0, 0, 0, $this->q, $this->r, $this->i, $this->j);
************}
********}
Gruss
Hen
[/b]
Hallo,
funktioniert dieses Skript auch mit der Version 304 SP 1 ?
Gruß
Wolfgang
allesmir
17.01.2007, 16:22
Habe da eben einen kleinen Fehler gefunden ...
// ---- verhundertn bildvergoesserung anfang ---------------
******if( ($this->i < $this->m) || ($this->j < $this->n) ) // neue Breite und Hoehe groesser als Original
********{
********$this->q = $this->i; // width
********$this->r = $this->j; // height
********}
// ---- verhundertn bildvergoesserung ende ---------------
In der If-Abfrage muss das 'oder' (||) durch ein 'und' (&&) ersetzt werden, da sonst Bilder ihre Originalgröße behalten wenn nur eine Kante kürzer als der entsprechende Max-Wert ist (dieser Fall wird vom Original-Script abgefangen).
In meinem Fall war das Original 350x60 Pixel und die Max-Werte 120x80 Pixel. :(
Also das hier nehmen:
// ---- verhundertn bildvergoesserung anfang ---------------
******if( ($this->i < $this->m) && ($this->j < $this->n) ) // neue Breite und Hoehe groesser als Original
********{
********$this->q = $this->i; // width
********$this->r = $this->j; // height
********}
// ---- verhundertn bildvergoesserung ende ---------------
Gruß allesmir
''>ZITAT(allesmir @ Jan 17 2007, 16:22) 18835
In der If-Abfrage muss das 'oder' (||) durch ein 'und' (&&) ersetzt werden,
[/b]
Recht hast du. Sauber.
Gruß
Hen
Ifthatsthewayitis
21.01.2007, 01:05
Ich würde fast die Lösung mit Lightbox v2 in Frage stellen. Sie ist sehr groß ~100kb und im Vergleich ist die Lightbox v1 glaube ich nur 10-15kb groß. Natürlich ist das in Zeiten von DSL kein großes Problem, aber trotzdem zieht es den Quelltext unnötig in die Länge, vorallem wird es immer geladen, auch wenn man auf Seiten ist die die Lightbox nicht benötigen.
Also Lightbox v1 findet man hier: http://www.huddletogether.com/projects/lightbox/ (http://anonym.to/?http://www.huddletogether.com/projects/lightbox/)
Meine Frage wäre jetzt ob es jemand schon mit v1 probiert hat?
Sonst überlege ich ob ich viellenicht mal einen Versuch wagen werde.
Ich denke die Animation von v2 ist gut, auch die Vorwärts und Rückwärts Buttons, aber ich möchte nicht das diese beiden Sachen einen reibungslosen Ablauf der Webseite gefährden und ich habe gelesen das auf älteren Computern Lightbox manchmal eine Scham sein soll.
outdoor-plaza
21.01.2007, 04:28
''>ZITAT(wguns @ Dec 22 2006, 11:05) 17126
Hallo,
funktioniert dieses Skript auch mit der Version 304 SP 1 ?
Gruß
Wolfgang
[/b]
Ich habe es auf 304Sp1 getestet - da wird es scheinbar nicht angenommen.
Ich habe es eben in mein neu installiertes 304 SP 2.1 eingebaut und getestet - funktioniert.
Vielen Dank. :)
vBulletin® v3.8.4, Copyright ©2000-2012, Jelsoft Enterprises Ltd.