Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: imagerectangle не рисует прямоугольник однородного цвета. Почему?
 
 автор: Port_Artur1   (25.03.2007 в 20:07)   письмо автору
 
 

Приведнный ниже кусок скрипта рисует незакрашенный прямоугольник красного цвета шириной 2 пиксела.
Особенностью является то, что если под стороной прямоугольника на основном рисунке
находятся пикселы отличного от белого цветов, то в итоге получаем пиксел не красного, а грязно-красного или буро-бардового цвета (в зависимости от цвета пиксела на основной картинке), да ещё и соседние со строной пикселы, как с внутренней стороны прямоугольника так и с внешней приобретаюют красноватый оттенок(5-10%).
А нужно чтобы этот прямоугольник был строго красного цвета.

$img = imagecreatefromjpeg("image/777.jpg");
$red = imageColorAllocate($img, 255 ,0 ,0);
imagerectangle($img,$x1,$y1,$x2,$y2,$red);
imagerectangle($img,$x1+1,$y1+1,$x2-1,$y2-1,$red);
header("Content-type: image/jpeg");
imagejpeg($img);

   
 
 автор: Trianon   (25.03.2007 в 21:37)   письмо автору
 
   для: Port_Artur1   (25.03.2007 в 20:07)
 

Формат Jpeg не предназначен для формирования изображений со строгим сохранением элементов изображения. Он разрабатывался и применяется для хранения фотографий.
Изображения, подобные Вашему, хорошо хранятся в файлах GIF и PNG.

   
 
 автор: Port_Artur1   (26.03.2007 в 12:47)   письмо автору
 
   для: Trianon   (25.03.2007 в 21:37)
 

С файлами .png тоже самое!

<?php
$name = $_GET['name'];
$x1= $_GET['x1'];
$y1= $_GET['y1'];
$x2= $_GET['x2'];
$y2= $_GET['y2'];
$img = imagecreatefrompng("image/777.png");

$red = imageColorAllocate($img, 255 ,0 ,0);

imagerectangle($img,$x1,$y1,$x2,$y2,$red);

imagerectangle($img,$x1+1,$y1+1,$x2-1,$y2-1,$red);
header("Content-type: image/png");
imagejpeg($img);

?>

   
 
 автор: mihdan   (26.03.2007 в 14:12)   письмо автору
 
   для: Port_Artur1   (26.03.2007 в 12:47)
 

а где true color

   
 
 автор: Саня   (26.03.2007 в 16:32)   письмо автору
 
   для: Port_Artur1   (26.03.2007 в 12:47)
 

Потому что нужно imagepng(), а не imagejpeg().

   
 
 автор: Port_Artur1   (26.03.2007 в 17:51)   письмо автору
 
   для: Саня   (26.03.2007 в 16:32)
 

Спасибо всем.
Действительно imagepng($img); и вообще .png -точто надо!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования