andy ice писал(а): дело в сглаживании, скорее всего. выводи текст вначале на двуцветный гиф - из прозрачного цвета и нужного, потом этот двуцветный гиф рисуй на нужный.
На двухцветную линейку?
посто необходимо чтобы логотип был 256 цветов и подпись не изменяла цвет (меняет цвет на доминирующий цвет в линейке)
можно ли решить с помощью пхп?
вот код:
$line = "Путь к линейки";
$typep = "Путь к логотипу";
$text = "Подпись";
header("Content-type: image/gif");
# создаем фон
$fon = imagecreate(ширина, длина);
# делаем фон прозрачным
$colorBackgr = imageColorAllocate($fon, 192, 192, 192);
imageColorTransparent($fon, $colorBackgr);
# выводим линейку
$im_line=imagecreatefromGif($line);
# получаем ее ширину и высоту
$IlogoW=ImageSX($im_line);
$IlogoH=ImageSY($im_line);
# выводим логотип
$logoImage=ImageCreateFromGif($typep);
# получаем его ширину и высоту
$logoW=ImageSX($logoImage);
$logoH=ImageSY($logoImage);
# соединяем линейку с фоном
ImageCopy($fon, $im_line, 0, ((длина фона) - ($IlogoH)) - (размер шрифта подписи + 20), 0, 0, $IlogoW, $IlogoH);
# соединяем логотип с фоном
ImageCopy($fon, $logoImage, $pos, ((длина фона) - ($logoH)) - размер шрифта подписи * 3, 0, 0, $logoW, $logoH);
# устанавливаем цвет подписи (черный)
$black = imagecolorallocate ($fon, 0, 0, 0);
# выводим подпись
imagettftext($fon, размер шрифта, 0, позиция шрифта по X, LINE_HEIGHT - размер шрифта + 8, $black, путь к файлу шрифта, $text);
# валим переменную
imagedestroy($fon);
фон и линейка - одинаковой длины |