function resample($filename, $width, $height){
if ($width && ($width_orig < $height_orig)) {
$width = ($height / $height_orig) * $width_orig;
} else {
$height = ($width / $width_orig) * $height_orig;
}
$image_p = imagecreatetruecolor($width, $height);
$arr = array('imagecreatefromjpeg','imagecreatefrompng','imagecreatefromgif');
foreach ($arr as $val) {
$image = @$val($filename);
if ($image !== false) { break; }
}
if ($image === false) {
print('to nie jest zaden obrazek!'); }
ename, $ext);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
$arr2 = array('imagejpeg','imagepng','imagegif'); foreach ($arr2 as $val2) {
$imagek = @$val2($image_p,"logo.".$ext[2], 100);
if ($imagek !== false) {@$val2($image_p,"logo.".$ext[2], 100); break; }
}
if ($imagek === false) {
print('to nie jest zaden obrazek!'); }
}
resample('http://mobileinfo.xon.pl/smt/gf.png',130,130);
Działa ok, tylko w obrazku tym stworzonym png, powinno być tło przeźroczyste:
http://speedway-world.pl/logo.png, a nie jest ;/
Rozszerzenie jest w porządku png, ale typ obrazka jest jpg i stąd się bierze chyba błąd, że wciąż działa funkcja imagejpeg, a powinna imagepng.
Nie wiem już cos z tym zrobić.
Ten post edytował stefik4 23.12.2010, 14:26:15