• Aktualisierte Forenregeln

    Eine kleine Änderung hat es im Bereich Forenregeln unter Abschnitt 2 gegeben, wo wir nun explizit darauf verweisen, dass Forenkommentare in unserer Heftrubrik Leserbriefe landen können.

    Forenregeln


    Vielen Dank

Bilder mit PHP automatisch verkleinern

mod86

Anfänger/in
Mitglied seit
19.08.2001
Beiträge
62
Reaktionspunkte
0
Hallo!

Ich suche ein PHP Script, dass eine auf dem Server gespeicherte JPG Datei automatisch verkleinern kann. So soll z.B. das kleine Vorschau-Thumbnail und dann die große Vollansicht automatisch aus einer einzigen JPG Datei kommen, wobei der User halt dann für die Vorschau auch wirklich nur eine verkleinerte Fassung runterladne muss.

Kennt ihr da was?
 
mod86 am 27.08.2004 14:31 schrieb:
Hallo!

Ich suche ein PHP Script, dass eine auf dem Server gespeicherte JPG Datei automatisch verkleinern kann. So soll z.B. das kleine Vorschau-Thumbnail und dann die große Vollansicht automatisch aus einer einzigen JPG Datei kommen, wobei der User halt dann für die Vorschau auch wirklich nur eine verkleinerte Fassung runterladne muss.

Kennt ihr da was?

http://www.google.de/search?sourceid=navclient&hl=de&ie=UTF-8&q=mit+php+thumbnails+erzeugen
 
mod86 am 27.08.2004 14:31 schrieb:
Hallo!

Ich suche ein PHP Script, dass eine auf dem Server gespeicherte JPG Datei automatisch verkleinern kann. So soll z.B. das kleine Vorschau-Thumbnail und dann die große Vollansicht automatisch aus einer einzigen JPG Datei kommen, wobei der User halt dann für die Vorschau auch wirklich nur eine verkleinerte Fassung runterladne muss.

Kennt ihr da was?
da hättest ja Roach fragen können ;)
 
the_sacrificer am 27.08.2004 15:06 schrieb:
da hättest ja Roach fragen können ;)

Das vom Roach hat meine schönes MoD-Logo in eine graue Bleiwüste verwandelt :-D

Wegen dem Google-Link: Ich weiß, ich hätte googlen können (was ich auch gerade tue), aber da findet man ja meistens doch nur Rotz, der nicht wirklich funktioniert :hop:
 
$PicPathIn="../bilder/";
$PicPathOut="../bilder/out/";
// Orginalbild
$bild="Foto.jpg";
// Bilddaten feststellen
$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>";
$Tumbnail=$PicPathOut."TN".$bild;
echo "<IMG SRC=\"$Tumbnail\" WIDTH=\"$neueBreite\" HEIGHT=\"$neueHoehe\">";
 
drexen am 27.08.2004 15:32 schrieb:
$PicPathIn="../bilder/";
$PicPathOut="../bilder/out/";
// Orginalbild
$bild="Foto.jpg";
// Bilddaten feststellen
$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>";
$Tumbnail=$PicPathOut."TN".$bild;
echo "<IMG SRC=\"$Tumbnail\" WIDTH=\"$neueBreite\" HEIGHT=\"$neueHoehe\">";
zu beachten ist das man ein gd lib dafür braucht und wenn man gif verkleiner will muss die version kleiner als 1.6 sein

schau auch mal hier:
http://ohs.pr0g.net/index.php?show=60
 
Alles klar. Vielen Dank für eure Mühen!!

Hab jetzt ein Script und es läuft einwandfrei :)
 
hihi.
Hab eben mal das ausgeben einer ganzen Bildergalerie in Thumb-Größe getestet.
Also ich würde das auf keinem Webserver einsetzen - bei mir ging die CPU Belastung für ca. 20 Sekunden auf 100%, bis die Gallerie fertig geladen war.

Ist das bei euch ähnlich, oder gehts da nur mir so? :)
 
skicu am 08.09.2004 18:40 schrieb:
hihi.
Hab eben mal das ausgeben einer ganzen Bildergalerie in Thumb-Größe getestet.
Also ich würde das auf keinem Webserver einsetzen - bei mir ging die CPU Belastung für ca. 20 Sekunden auf 100%, bis die Gallerie fertig geladen war.

Ist das bei euch ähnlich, oder gehts da nur mir so? :)

1. wie groß sind die bilder?
2.wie viele bilder sind in der gallerie?
3.wie viel ghz hast du?
 
SebiB90 am 08.09.2004 18:51 schrieb:
skicu am 08.09.2004 18:40 schrieb:
hihi.
Hab eben mal das ausgeben einer ganzen Bildergalerie in Thumb-Größe getestet.
Also ich würde das auf keinem Webserver einsetzen - bei mir ging die CPU Belastung für ca. 20 Sekunden auf 100%, bis die Gallerie fertig geladen war.

Ist das bei euch ähnlich, oder gehts da nur mir so? :)
in meiner testgallerie:
1. wie groß sind die bilder?
von 40 bis 90 kb alles dabei.
sind alle in der auflösung 520x390px, die bei den thumbnails auf 100x75 runtergerechnet wird - in der einzelbildansicht später auf 450xirgendwas, aber da fällt das wegen dem einen bild ja kaum auf.
2.wie viele bilder sind in der gallerie?
derzeit 72.
3.wie viel ghz hast du?
Athlon Thunderbird 1200 MHz

edit: aber ich kann ja auf nem normalen webserver nich 50 mal täglich, wenn auch kurz, ne serverlast von nahezu 100% erzeugen *g*
 
################################################################################
# #
# create_thumb_file v0.2 & v0.3 is Copyright (c) #
# Written and developed by Christian Zamora 2004. #
# #
# This class is free software; you can redistribute it and/or modify it #
# under the terms of the GNU General Public License as published by the Free #
# Software Foundation; either version 2 of the License, or (at your option) #
# any later version. #
# #
# This program is distributed in the hope that it will be useful, but #
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY #
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License #
# for more details. #
# #
# www.corereactor.de #
# #
# edited by Ch. Zamora. #
# #
# Edit Log: #
# - dynamic template extension on template assign #
# - dynamic template directory choose on template assign #
# #
# Note: #
# You'll need at last php4.0 with a compiled gd lib. #
# Version 0.3 needs freetype2 too. #
# #
################################################################################

function create_thumb_file($path, $thpath, $name)
{
$new_w=120;
$new_h=120;
$s = 6;

$path = realpath($path.$name);
$res = GetImageSize($path);

header("Content-type: " . $res[mime]);

$wx = $res[0];
$hx = $res[1];

if ($new_w<=10) { $new_w = $wx; }
if ($new_h<=10) { $new_h = $hx; }


$dst_img=ImageCreateTrueColor($new_w, $new_h);

$src_img=ImageCreateFromJPEG($path);

$col = ImageColorAllocate($src_img, 198, 198, 198);

ImageCopyResampled($dst_img,$src_img,0,0,0,0,$new_w,$new_h,ImageSX($src_img),ImageSY($src_img));
ImageJPEG($dst_img, $thpath . 'th_' . $name);
}

##################### v 0.3 with copyright text #################################
function create_thumb_file($path, $thpath, $name, $text = '', $font='arial.ttf')
{
$new_w=120;
$new_h=120;
$s = 6;

$settext = $text;
$path = realpath($path.$name);
$res = GetImageSize($path);
$font = realpath($font);

header("Content-type: " . $res[mime]);

$wx = $res[0];
$hx = $res[1];

if ($new_w<=10) { $new_w = $wx; }
if ($new_h<=10) { $new_h = $hx; }


$dst_img=ImageCreateTrueColor($new_w, $new_h);

$src_img=ImageCreateFromJPEG($path);

$arr = ImageTTFBBox($s, 0, $font, $settext);

$x = $new_w - $arr[2] - 0;
$y = $new_h - $arr[1] - 0;

$col = ImageColorAllocate($src_img, 198, 198, 198);

ImageCopyResampled($dst_img,$src_img,0,0,0,0,$new_w,$new_h,ImageSX($src_img),ImageSY($src_img));
ImageTTFText($dst_img, $s, 0, $x, $y, $col, $font, $settext);
ImageJPEG($dst_img, $thpath . 'th_' . $name);
}

Version 0.3 speichert thumbnails mit eingebauten vordefinierten $text.

$path ist der pfad zum hochgeladenen originalbild
$thpath der pfad wo die bilder als thumbs liegen
$name ist der name des bildes samt extension.

$new_w (thumb breite)
$new_h (thumb höhe)
Diese beiden werte kann man frei definieren oder die funktion noch dyamischer gestalten.

$s ist die Fontgröße des Textes in punkten.

Von wie in einem Posting hier drüber beschriebene gifs würd ich abraten.
Die sind speziell Lizenztechnisch geschützt.

Anwendung:

<?
... funktionen für bildupload und kontrolle.
create_thumb_image('images/', 'images/thumbs/', 'name des eben hochgeladenen bildes');
?>


Die funktion ist wie alles andere auch beliebig verwend und erweiterbar.
 
skicu am 08.09.2004 18:55 schrieb:
SebiB90 am 08.09.2004 18:51 schrieb:
skicu am 08.09.2004 18:40 schrieb:
hihi.
Hab eben mal das ausgeben einer ganzen Bildergalerie in Thumb-Größe getestet.
Also ich würde das auf keinem Webserver einsetzen - bei mir ging die CPU Belastung für ca. 20 Sekunden auf 100%, bis die Gallerie fertig geladen war.

Ist das bei euch ähnlich, oder gehts da nur mir so? :)
in meiner testgallerie:
1. wie groß sind die bilder?
von 40 bis 90 kb alles dabei.
sind alle in der auflösung 520x390px, die bei den thumbnails auf 100x75 runtergerechnet wird - in der einzelbildansicht später auf 450xirgendwas, aber da fällt das wegen dem einen bild ja kaum auf.
2.wie viele bilder sind in der gallerie?
derzeit 72.
3.wie viel ghz hast du?
Athlon Thunderbird 1200 MHz

edit: aber ich kann ja auf nem normalen webserver nich 50 mal täglich, wenn auch kurz, ne serverlast von nahezu 100% erzeugen *g*
verteil die bilder auf mehrere seiten so 20 pro seite dann wird es vielleicht nicht so viel
 
Arokh am 08.09.2004 23:19 schrieb:
ZAM am 08.09.2004 19:45 schrieb:
Von wie in einem Posting hier drüber beschriebene gifs würd ich abraten.
Die sind speziell Lizenztechnisch geschützt.

Nicht mehr - das Patent ist inzwischen abgelaufen.

Oh ja seit dem 24 ? Juni oder so..ich erinnerem ich.
 
ZAM am 09.09.2004 18:44 schrieb:
Arokh am 08.09.2004 23:19 schrieb:
ZAM am 08.09.2004 19:45 schrieb:
Von wie in einem Posting hier drüber beschriebene gifs würd ich abraten.
Die sind speziell Lizenztechnisch geschützt.

Nicht mehr - das Patent ist inzwischen abgelaufen.

Oh ja seit dem 24 ? Juni oder so..ich erinnerem ich.
Aber da wäre noch so ein ominöses jpeg-Patent. Entweder das Patent fällt, oder die Unterstützung in so mancher freier Software. Wie einst bei gif :finger2:
 
Zurück