PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bild zerschnippeln


BeneBaur
18.10.2003, 13:23:09
Hallo,

wenn man ein relativ großes Bild hat bindet man das ja oft nicht als ganzes ein sondern zerschnippelt das noch in kleine teile und haut das ganze dann in ne Tabelle.
Nun würde ich gerne wissen wie man das am besten macht oder es ein Programm/Webseite gibt wo man das einfacher machen kann.

Ich hoffe ihr habt mein Problem erkannt und könnt mir helfen....

Gweilo
18.10.2003, 13:41:04
was für ein zufall, genau so eine funktion hatte ich mal programmiert!


<?PHP
function cutit($imgsrc, $width, $height)
{
$imgs = 0;
$image = imagecreatefromjpeg($imgsrc);
$size_arr = getimagesize($imgsrc);
$img_width=$size_arr[0];
$img_height=$size_arr[1];
for ($j=0; $j<$img_height; $j+=$height)
{
for ($i=0; $i<$img_width; $i+=$width)
{
if ($i+$width >= $img_width)
$temp_width = $img_width-$i; // if right border is reached
else
$temp_width = $width;
if ($j+$height >= $img_height)
$temp_height = $img_height-$j; // if bottom border is reached
else
$temp_height = $height;
$image1 = imagecreatetruecolor($temp_width,$temp_height);
ImageCopy($image1,$image,0,0,$i,$j,$temp_width,$temp_height);
$imagename = substr($imgsrc,0,-4)."-".($i/$width)."-".($j/$width).".jpg";
$ok = imagejpeg($image1,$imagename,100);
if ($ok)
$imgs++;
// take this out, if you want to render it faster
echo "<img src="".$imagename."" />";
}
}
return $imgs;
}
// first param = image file path
// second param = width of new images in pixels
// third param = height of new images in pixels
$imgs = cutit("hall.jpg",10,10);
echo "<br />".$imgs." images created!";
?>


Gweilo

[edit] mit ein wenig abändern kannst du gleich die tabelle ausgeben lassen.

diver-network
20.10.2003, 10:12:20
Hi,

Photoshop bzw. das dabei liegende Image Ready bieten hierfür eine Option.
Wichtig ist, daß Du hinterher die einzelnen Bildteile noch einmal manuell anpackst und Dateigrößenmäßig optimierst.
Ist zwar nicht ganz billig, aber dafür gut.

HTH,

Andy

Jürg
20.10.2003, 17:05:00
Das Ganze habe ich auch schon auf mehreren Seiten gesehen. Ich frage mich nur, was das soll? Die Ladezeiten weren dadurch ja nicht kürzer sondern länger. Ein Schutz des Bildes ergibt das auch nicht. Also wozu?

diver-network
20.10.2003, 17:33:17
Hi Jürg,

leider muß ich Dich korrigieren.
Das aufsplitten eines großen Bildes in kleinere, die dann über eine Tabelle wieder angezeigt werden kann die Dateigröße sehr verkleinern.
So ist es z.B. möglich, Bereiche des Bildes als gif, andere als jpg abzuspeichern, je nach Farben bzw. Reduktionsmöglichkeiten.

Wenn Du die Einzelteile aber unangetastet lässt hast Du Recht, dann ist die Gesamtdateigröße größer.

Probier es einfach mal aus und schau Dir das Ergebnis an ;-)

Gruß,

Andy