Seite 1 von 1
Bildmodul mit Imageresize?
Verfasst: Fr 2. Apr 2004, 09:54
von Robatzen
Hallo,
ich wollte mal fragen ob das schon jemand umgesetzt hat? Ich stell mir das so vor, das man im Input Bereich einstellen kann welche Ausmaße das Bild haben wird und im Output wird es dann "resized" also vergrössert oder verkleinert ausgegeben.
Geht wirklich nur um ein einzelnes Bild.
Gibts sowas schon?
Gruß, Rob
Verfasst: So 4. Apr 2004, 18:14
von emergence
Verfasst: Mi 7. Apr 2004, 09:42
von Robatzen
So, da ich leider immernoch nix in der Richtung gefunden habe, hab ich mich mal rangesetzt und versucht ein eigenes Modul zu bauen. Ist bestimmt viel zu umständlich und kompliziert geworden, vielleicht hat ja der ein oder andre noch einen Hinweis für mich.
Grundsätzlich funktioniert es wie das Standard Bildmodul, nur das man in der Konfiguration eine neue Bildgröße (XxY) angeben kann, dass Bild wird dann automatisch resized und mit dem richtigen Ratio wieder ausgegeben. Ein Link und ein Bilduntertext lassen sich natürlich weiterhin anlegen.
Ein kleines Problem hab ich noch, man muss erst im Editor ein Bild auswählen, dass dann resized wird. Wenn in der Konfiguration keine Werte angegeben werden wird das Bild nicht angezeigt. Ich würde da gerne noch einen Dateiwähler in den Input einbauen, so dass man das Bild direkt im Input per Dropdown auswählen kann. Vielleicht könnte mir ja da jemand helfen, denn das habe ich leider noch nicht hinbekommen.
So wer sowas in der Richtung brauch oder sucht kann es ja mal einbauen und testen, bei mir läufts soweit ich das beurteilen kann wie gewünscht.
Bitte beachten, an der Stelle wo im Code der Kommentar "Säubern des Pfades" steht, müsst ihr euren eigenen Cms-Pfad eintragen.
Für Tipps und Ratschläge bin ich dankbar!
Gruß, Rob
Code: Alles auswählen
Input
echo "<table><tr>
<td>
Gewünschte Bildgröße XxY
</td>
<td>
<input size=3 maxlength=3 type=\"text\" name=\"CMS_VAR[1]\" value=\"CMS_VALUE[1]\">x<br>
<input size=3 maxlength=3 type=\"text\" name=\"CMS_VAR[2]\" value=\"CMS_VALUE[2]\">y
</td>
</tr></table>";
Code: Alles auswählen
Output
<?php
$Xt = "CMS_VALUE[1]";
$Xt = intval($Xt); // wir wollen nur ganzzahlige Dimensionen
$Yt = "CMS_VALUE[2]";
$Yt = intval($Yt); // wir wollen nur ganzzahlige Dimensionen
$bildpfad = "CMS_IMG[5]";
if ($bildpfad!=""){
$bildpfad = str_replace ('http://www.stadtportal-brandenburg.de/contenido/cms1/' , '', $bildpfad ); //Säubern des Pfades, hier bitte den eigenen cms root pfad angeben!
$size = getimagesize($bildpfad); //Auslesen der Orginalbildgröße und speichern in Array
}
$Xs = $size[0];
$Ys = $size[1];
if ($Xt > 0 && $Yt > 0){ // ist die Eingabe der neuen Dimension leer, null oder negativ?
if ($Xs > Ys){ //Querformat?
$facx = ($Xt/$Xs);
$Xtn = ($Xs*$facx);
$Ytn = ($Ys*$facx);
if ($Ytn > $Yt){
$facy = ($Yt/$Ys);
$Xtn = ($Xs*$facy);
$Ytn = ($Ys*$facy);
}
else{
$Xtn = $Xtn;
$Ytn = $Ytn;
}
}
else{ //Hochformat!
$facy = ($Yt/$Ys);
$Xtn = ($Xs*$facy);
$Ytn = ($Ys*$facy);
if ($Xtn > $Xt){
$facx = ($Xt/$Xs);
$Xtn = ($Xs*$facx);
$Ytn = ($Ys*$facx);
}
else{
$Xtn = $Xtn;
$Ytn = $Ytn;
}
}
$xneu = intval($Xtn); // auch die berechneten Dimensionen sollen ganzzahlig sein
$yneu = intval($Ytn); // auch die berechneten Dimensionen sollen ganzzahlig sein
echo "<a href=\"CMS_LINK[5]\" target=\"CMS_LINKTARGET[5]\"><img src=\"CMS_IMG[5]\" border=\"0\" width=\"$xneu\" height=\"$yneu\"></a>";
echo "<br>";
echo "<span class=\"textmini\">CMS_IMGDESCR[5]";
echo "<br>";
echo "CMS_LINKDESCR[5]";
echo "<br>";
}
else{
echo "Sie haben einen Wert kleiner gleich 0 oder aber keinen Wert für die neuen Dimensionen eingetragen!"; //Wenn Eingabe ungültig
}
?>
Verfasst: Mi 7. Apr 2004, 09:56
von Robatzen
Da gibs schon die ersten Probleme!
Wenn man für eine Dimension eine "0" eingibt, dann wird das Bild nicht angezeigt, ebenso wenn man negative Werte wählt!
Ich bastel da gleich mal noch Kontrollstrukturen rein, bis dahin bitte nur positive Werte zwischen 1 und 999 verwenden.
Gruß, rob
Verfasst: Mi 7. Apr 2004, 10:38
von Robatzen
Ich hab die entsprechende Kontrollstruktur eingebaut, es sind jetzt nur noch ganzzahlige postitive Werte größer 0 möglich, bei allen andern Eingaben gibs ne Fehlermeldung.
In ganzzahlig wird automatisch umgewandelt, alle anderen Fälle werden mit einer Fehlermeldung abgefangen, ich werds wohl noch so hinbauen, das wenn nichts eingetragen wird, die Orginalmaße verwendet werden und keine Fehlermeldung kommt.
Jetzt brauch ich nur noch jemanden der mir hilft nen Dateipicker für den Input zu basteln oder zumindest nen Link auf entsprechenden Code zur Verfügung stellen kann!
Großes Dankeschön schonmal!
Der Code oben ist aktualisiert worden.
Verfasst: Do 8. Apr 2004, 12:41
von neu@cidnet.de
bei diesem script wird das bild aber nur in der größe angepasst oder ?
also wenn jemand ein bild vonner digicam mit 1,2 mb hochlädt, sieht das doch garantiert nicht mehr allzu rosig aus....

Verfasst: Fr 9. Apr 2004, 11:46
von Robatzen
Die Bildgröße wird in Relation zur alten Bildgröße vergrößert bzw. verkleinert, dass macht die Qualität des Bildes sicher nicht besser, besonders wenn die Größenveränderung sehr stark ist, aber das liegt nunmal in der Natur der Sache.
Für meine Zwecke hat es aber vollkommen ausgereicht und ich verkleiner Bilder von 1000x700 auf 150x125, dass sieht durchaus vernünftig aus. Probiers halt mal aus, auch ein Bild Deiner Digicam wird nicht sehr viel schlechter aussehen, nur kleiner halt.
Ich arbeite grad noch an einem Uploadmodul, welches das Bild tatsächlich verkleinert und dann auch resized speichert, denn bisher muss natürlich trotzdem die voll Datenmenge übertragen werden. Ziel soll sein das die Bilder resized gespeichert werden und so auch der Traffic abnimmt.
Gruß, Rob
Verfasst: Fr 9. Apr 2004, 13:41
von neu@cidnet.de
ne ich habe halt das problem.
ich mache eine homepage für eine gemeinde. und da sollen demnächst alle selber die texte und so eingeben. jetzt haben aber viele digicams mit großen pixelzahlen. 4 und 5 Millionnen Pixel. Leute die da nicht allzuviel ahnung von haben laden dann ja einfach 3 MB große bilder hoch, und das will ich vermeiden..

Verfasst: Fr 9. Apr 2004, 14:38
von Robatzen
Kuck mal in deinem Thread dazu, ich hab nen paar Links gepostet die genau das Thema betreffen.
http://www.contenido.de/forum/viewtopic.php?t=3936
Gruß, Rob