Pictures resize

green_phanta

Erfahrenes Mitglied
Hi

Ich bin noch recht neu in PHP und daher kann ich das nicht alleine Lösen. Deswegen -> Forum :).

Also, mein Ziel:
Ein Bild wird auf einen Server geladen. In den Ordner "Bilder".
Sobald man auf die Seire kommt wird ein PHP script ausgeführt der folgendes mit dem Bild machen sollte:
Er erstellt zwei kleiner Bilder von dem Original. Das erste sollt größte Ausdehnung 450 haben und das zweite größte Ausdehnung 75. Größte Ausdehnung deswegen weil es kann ja Hoch und Quer sein, soll aber sein Verhältniss behalten. D.h. nicht verzerren.
Gut ich habe jetzt 3 Bilder im "Bilder" Ordner. Das Original soll er in einen Ordner "Original" verschieben. Das 450-bild soll in den Ordner "images" und das kleine Bild (75) soll in den Ordner "thubnails".

Kann man das mit PHP realisieren oder muss ich da Flash hinzuziehen?

Vielen Dank

greets green


EDIT:
Ach ja es sollte beim Verschieben auch noch undbenannt werden... ist das möglich?
 
Ok danke einmal das ist schon sehr hilfreich, aber, da ich noch nicht wirklich viel Ahnung von PHP habe kann ich nichts dazu schreiben vielleicht könnt ihr mir helfen?

Das ist mal mein Script:
PHP:
    <?
$PicPathIn="../bilder/";
$PicPathOut="../bilder/out/";

// Orginalbild
$bild="Foto.jpg";

// Bilddaten ermitteln
$size= GetImageSize("$PicPathIn"."$bild");
$breite=$size[0];
$hoehe=$size[1];
$neueBreite=100;
$neueHoehe= intval($hoehe*$neueBreite/$breite);

if($size[2]==1) {
// GIF
$altesBild= imagecreatefromgif("$PicPathIn"."$bild");
$neuesBild= imagecreate($neueBreite,$neueHoehe);
 imageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
 imageGIF($neuesBild,"$PicPathOut"."TN"."$bild");
}

if($size[2]==2) {
// JPG
$altesBild= ImageCreateFromJPEG("$PicPathIn"."$bild");
$neuesBild= imagecreate($neueBreite,$neueHoehe);
 imageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
 ImageJPEG($neuesBild,"$PicPathOut"."TN"."$bild");
}

if($size[2]==3) {
// PNG
$altesBild= ImageCreateFromPNG("$PicPathIn"."$bild");
$neuesBild= imagecreate($neueBreite,$neueHoehe);
 imageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
 ImagePNG($neuesBild,"$PicPathOut"."TN"."$bild");
}

echo "Altes Bild:<BR>";
echo "<IMG SRC=\"$PicPathIn$bild\" WIDTH=\"$breite\" HEIGHT=\"$hoehe\"><BR><BR>";
echo "Neues Bild:<BR>";
$Thumbnail=$PicPathOut."TN".$bild;
echo "<IMG SRC=\"$Thumbnail\" WIDTH=\"$neueBreite\" HEIGHT=\"$neueHoehe\">";
?>


Ich hätte zuerst einmal ein paar fragen dazu.

1.
PHP:
// Orginalbild
$bild="Foto.jpg";
Könnte ich hier auch einfach sagen, ALLE Bilder die sich in diesem Ordner befinden?

2.
Werden bei diesem Script die Bild-Verhältnisse behalten? Weil verzerrte Bilder sehen vielleicht nnicht ganz so toll aus;). Bzw, wenn ja, welcher Befehl macht das?

3.
WANN wird der Script ausgeführt?
Sobald jemand auf diese Seite geht?


Vielen Dank

greets green


EDIT:

Ok ich habe mir den Script jetzt noch ein paar mal durchgelesen und kam zu dem Schluss das "neue breite = 100" bedeutet: Gut die feste neue breite ist 100 das wäre auch ok, aber NUR bei Querformat. Stellt euch vor ich will die Thubnails in einem Quadrat darstellen welches 100*100 ist. Bei Quer passt es schön hinein. Jedoch bei Hochformat wir es zwar von der breite passen allerdings von der Höhe her viel zu hoch sein. Versteht ihr?
 
Zuletzt bearbeitet:
> Script jetzt noch ein paar mal durchgelesen
Und auch mal selber ausprobiert ?
Das würde einige Fragen selber beantworten :-)

Bild-Verhältnisse ?
Ähhhh wie nennts ich das heute => Dreisatz oder so :-)

PS: Da imagecreate() nur 256-Farben unterstützt, nehme imagecreatetruecolor() wenn du JPEG oder PNG benutzt.
Bei GIF ist es egal.
 
Ohje, hoffentlich nicht dazu um jetzt den ganzen Ordner durch die oben genannten Image-Funktionen zu jagen ...
 
Zurück