Просмотр полной версии : [вопрос] php. наложение картинок.
life_is_shit
04.04.2008, 05:34
Товарищи ачатовцы=)
Столкнулся с задачей, которую не могу пока что решить.
Суть: Есть две картинки. Первая определенного размера (например 200*200), вторая нет (т.е. может быть как больше так и меньше первой картинки). нужно уменьшить/увеличить вторую картинку до определенного размера (например 100*100) и наложить на первую по центру.
Как это можно реализовать на 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>';
}
?>
life_is_shit
04.04.2008, 18:15
это то что нужно, спасибо за помощь=)
ultimatum
16.04.2008, 11:11
также стоило бы добавить фильтр на расширение картинки, что на стороне сервера и на стороне клиента клиента.На стороне клиента необязательно в принципе, Например , если картинку заливают с расширением *.php, то сервер бы отфильтровал бы это и вместо отрицательново ответа написал бы , что картинка успешна загруженна. Это бы сбила бы с толку делетантов , прада не надолго. Написал бы код , да в нём не силен на столько (
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot