|
|
|
| Етсь такая CMS - Битрис. У них в админке строятся круговые диаграммы.
Пробовал построить сам - с помощью imageFilledArc - картинка получается не лучшего качества. А у них диаграммы строятся правильной округлой формы. В чём тут секрет?
Смотрите прикреплённый файл. | |
|
|
|
|
|
|
|
для: Crone
(17.09.2006 в 20:08)
| | скачайте да посмотрите :)
или скажите где именно строятся у них | |
|
|
|
|
|
|
|
для: isset
(17.09.2006 в 20:18)
| | Isset, я Set, если исчо помнишь такого =)
Да давно бы ужо скачал, кабы у них исходники были бы не закодированные. А строятся в админке - есть желание, то можешь посмотреть на демо-сайте. А так я картинку прицепил к первому сообщению исчо. | |
|
|
|
|
|
|
|
для: Crone
(17.09.2006 в 20:26)
| | помню :)
на http://www.aditus.nu/jpgraph/ тоже графики без сглаживания (именно круги, а остальное сглаживается), интересно чего битрикс придумал. | |
|
|
|
|
|
|
|
для: isset
(17.09.2006 в 22:08)
| | Ничего он не придумывал! Просто рисуется график в 2 раза больше и ужимается до нужных размеров. | |
|
|
|
|
|
|
|
для: Саня
(17.09.2006 в 23:07)
| | Эту статью я видел - ничего нового для себя не открыл. А вот идея с рисованием графика в 2 раза больше с последующим ужиманием - очень интересная. обязательно попробую. Спасибо! | |
|
|
|
|
|
|
|
для: Crone
(17.09.2006 в 23:46)
| | Необязательно в два, можно и больше. Главное в чётное количество раз. | |
|
|
|
|
|
|
|
для: Саня
(18.09.2006 в 00:09)
| |
<?php
$first = array (
"width" => 1200,
"height" => 1200
);
$second = array (
"width" =>120,
"height" => 120
);
$image_from = imageCreate($first["width"], $first["height"]);
$image_to = imageCreate($second["width"], $second["height"]);
$white = imageColorAllocate($image_from, 255, 255, 255);
$white_2 = imageColorAllocate($image_to, 255, 255, 255);
$black = imageColorAllocate($image_from, 0, 0, 0);
imageFilledEllipse($image_from, round($first["width"] / 2), round($first["height"] / 2, 0), $first["width"], $first["height"], $black);
imageCopyResampled($image_to, $image_from, 0, 0, 0, 0, $second["width"], $second["height"], $first["width"], $first["height"]);
header("Content-type: image/png");
imagePng($image_to);
imageDestroy($image_to);
imageDestroy($image_from);
?>
|
Вот, что у меня получилось. Заметного прибавления в качестве я не заметил. Сейчас попробую уменьшать размер изображения не один раз, а несколько - может это поможет... | |
|
|
|
|
|
|
|
для: Crone
(18.09.2006 в 00:39)
| | Сделал постепенное уменьшение - не помогло. Интересно, в чём проблема... | |
|
|
|
|
|
|
|
для: Crone
(18.09.2006 в 00:47)
| | Проблема в том, что нужно работать с полноцветными изображениями:
<?php
$i = 2;
$w = 120*$i;
$h = 120*$i;
// рисуем
$image = imageCreateTrueColor($w, $h);
$white = imageColorAllocate($image, 255, 255, 255);
$black = imageColorAllocate($image, 0, 0, 0);
imageFill($image, 1, 1, $white);
imageFilledEllipse($image, round($w / 2), round($h / 2), $w, $h, $black);
// уменьшаем
$new = imageCreateTrueColor($w/$i, $h/$i);
imageCopyResampled($new, $image, 0, 0, 0, 0, $w/$i, $h/$i, $w, $h);
// выводим
header("Content-type: image/png");
imagePng($new);
?>
|
| |
|
|
|
|
|
|
|
|
для: Crone
(17.09.2006 в 20:08)
| | не не, все проще:
http://icewind.ic.funpic.de/index.php?content=ellipse теория + скрипт с примерами (только исправьте внизу , там $img передается по ссылке, что считается warning-om, поэтому надо убрать из строк с 174 по 179 знак & )
http://personal.3d-box.com/php/filledellipseaa.php еще один скрипт + пример (в них есть по одной синтаксической ошибке, прикреплен исправленный вариант с примером (внизу)) | |
|
|
|
|
|
|
|
для: isset
(18.09.2006 в 01:21)
| | Помогло. Спасибо за ссылки. | |
|
|
|