Товарищи ачатовцы=) Столкнулся с задачей, которую не могу пока что решить. Суть: Есть две картинки. Первая определенного размера (например 200*200), вторая нет (т.е. может быть как больше так и меньше первой картинки). нужно уменьшить/увеличить вторую картинку до определенного размера (например 100*100) и наложить на первую по центру. Как это можно реализовать на php??? Очень надо помогите плз, плюсом не обижу.
вот с аплоадом: PHP: <?php if(isset($_POST['go'])) { $file1= $_FILES['file1']['tmp_name']; # 200*200 $file2= $_FILES['file2']['tmp_name']; $image1 = ImageCreateFromJPEG($file1); function resize($image, $new_width, $new_height, $target) { # Функция ресайза картинки if (file_exists($image)) { $image = ImageCreateFromJPEG($image); $width = ImagesX($image); $height = ImagesY($image); $thumb = ImageCreateTrueColor($new_width,$new_height); ImageCopyResampled($thumb, $image, 0,0,0,0, $new_width, $new_height, $width, $height); ImageJPEG($thumb, $target, 100); ImageDestroy($image); } } resize($file2, 100, 100, '2_resized.jpg'); # Ресайзим вторую картинку $image2 = ImageCreateFromJPEG('2_resized.jpg'); ImageCopyMerge($image1, $image2, ceil(ImagesX($image1)/4), ceil(ImagesY($image1)/4), 0, 0, ImagesX($image2), ImagesY($image2), 100); ImageJPEG($image1, '3.jpg', 100); # Сохраняем готовую картинку ImageDestroy($image1); ImageDestroy($image2); } else { echo '<form method="post" enctype="multipart/form-data"> <input type="file" name="file1"><br> <input type="file" name="file2"><br> <input type="submit" name="go" value="Загрузить"><br> </form>'; } ?>
также стоило бы добавить фильтр на расширение картинки, что на стороне сервера и на стороне клиента клиента.На стороне клиента необязательно в принципе, Например , если картинку заливают с расширением *.php, то сервер бы отфильтровал бы это и вместо отрицательново ответа написал бы , что картинка успешна загруженна. Это бы сбила бы с толку делетантов , прада не надолго. Написал бы код , да в нём не силен на столько (