<?PHP // kod działa idealnie $file = $_GET['id']; $dir = 'imgs/'; $n_size = $_GET['size']; function pic_res($file, $dir){ return $temp_res_tmp; } function photo_resize_without_saving($file, $dir, $n_size){ $pic_res = pic_res($file, $dir); $pic_w = $pic_res[0]; $pic_h = $pic_res[1]; if(($pic_w > $pic_h)&&($pic_w > $n_size)){ //poziome $pic_wn = $n_size; $divisor = ($pic_w/$pic_wn); } elseif(($pic_w < $pic_h)&&($pic_h > $n_size)){ //pionowe $pic_hn = $n_size; $divisor = ($pic_h/$pic_hn); } else{ // jesli mniejszy niż 800px $pic_wn = $pic_w; $pic_hn = $pic_h; } $pic = imagecreatefromjpeg($dir.$file); $new_size = imagecreatetruecolor($pic_wn, $pic_hn); imagecopyresampled($new_size, $pic, 0, 0, 0, 0, $pic_wn, $pic_hn, imagesx($pic), imagesy($pic)); $save = NULL; $new_photo = imagejpeg($new_size, $save, 100); return $new_photo; } ?>
teraz kolejna sprawa chciałbym tworzyć przezroczysty obrazek png na zasadzie
rozmiar jest stały $full = array('383','174'); width/height
na przezroczystym obrazku png tworzę miniaturkę jpg (nie poobcinaną - całość widoczna), która jest idealnie wycentrowana. Z centrowaniem sobie poradzę ale lipa wychodzi jeśli chcę zmienić jej wymiary - imagecopyresampled dla jpg
znalazłem coś takiego:
$dest = imagecreatefrompng('mapCanvas.png'); $src = imagecreatefromjpeg('si.jpg'); imagealphablending($dest, false); imagesavealpha($dest, true); imagecopymerge($dest, $src, 17, 13, 0, 0, 60, 100, 100); imagepng($dest); imagedestroy($dest); imagedestroy($src);
więc przerobiłem na:
$file = $_GET['id']; $dir = 'imgs/'; function pic_res($file, $dir){ return $temp_res_tmp; } function new_png($dir, $file, $max, $full){ $pic_res = pic_res($file, $dir); $pic_w = $pic_res[0]; $pic_h = $pic_res[1]; if($pic_w > $pic_h){ //poziome $pic_wn = $max[0]; $divisor = ($pic_w/$pic_wn); } elseif($pic_w < $pic_h){ //pionowe $pic_hn = $max[1]; $divisor = ($pic_h/$pic_hn); } $dest = imagecreatefrompng('map.png'); $src = imagecreatefromjpeg($dir.$file); //$new_size = imagecreatetruecolor($pic_wn, $pic_hn); //imagecopyresampled($new_size, $src, 0, 0, 0, 0, $pic_wn, $pic_hn, imagesx($pic), imagesy($pic)); imagealphablending($dest, false); imagesavealpha($dest, true); imagecopymerge($dest, $src, 17, 13, 0, 0, 60, 100, 100); imagepng($dest); imagedestroy($dest); imagedestroy($src); }
Ktoś pomoże ?