|
|
|
| При загрузке картинки, сохраняю на сервере две картинки в разных форматах - одну меньше, другую больше по размеру. При этом в картинке появляется тёмная полоса внизу или справа. Функция imagecolorallocate не помогает или я её не правильно использую.
часть кода:
$size_img = getimagesize($_FILES['pic']['tmp_name']);
$new = ImageCreateTruecolor($w, $h);
imagecolorallocate($new, 0xFF, 0xFF, 0xFF);
$new1 = ImageCreateTruecolor($w1, $h1);
imagecolorallocate($new1, 0xFF, 0xFF, 0xFF);
$old = imagecreatefromjpeg($_FILES['pic']['tmp_name']);
imageCopyResized($new, $old, 0, 0, 0, 0, $w, $h, $size_img[0], $size_img[1]);
imageCopyResized($new1, $old, 0, 0, 0, 0, $w1, $h1, $size_img[0], $size_img[1]); | |
|
|
|
|
|
|
|
для: Андр
(06.01.2006 в 10:28)
| | Размеры уменьшенной картинки не пропорциональны исходной, поэтому и появляются полосы.
Советую воспользоваться функцией resizeimg(), написанной Дизайнером: http://softtime.ru/forum/read.php?id_forum=1&id_theme=145 | |
|
|
|
|
|
|
|
для: Андр
(06.01.2006 в 10:28)
| | Попробуй так:
$size_img = getimagesize($_FILES['pic']['tmp_name']);
$w=200; //например
$h=$size_img[1]/($size_img[0]/$w);
$new = ImageCreateTruecolor($w, $h);
imagecolorallocate($new, 0xFF, 0xFF, 0xFF);
// тоже самое тут
$new1 = ImageCreateTruecolor($w1, $h1);
imagecolorallocate($new1, 0xFF, 0xFF, 0xFF);
$old = imagecreatefromjpeg($_FILES['pic']['tmp_name']);
imageCopyResized($new, $old, 0, 0, 0, 0, $w, $h, $size_img[0], $size_img[1]);
imageCopyResized($new1, $old, 0, 0, 0, 0, $w1, $h1, $size_img[0], $size_img[1]);
|
| |
|
|
|
|
|
|
|
для: malish
(06.01.2006 в 12:57)
| | пасиба!
(извиняюсь за жаргон) | |
|
|
|