Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.



Użytkownik
witajcie Koledzy
na pewno ktoś z tym walczył a zarazem na pewno jest to proste, googlam trochę ale nie natrafian na rozwiazanie (no tak, mogę skorzystać z imagemagicka ale może nie muszę, może moge przy GD zostać)
mam sobie taki skrypcik php:
http://graffi.us/fora/DUG/gd/t1.txt
i daje on:
http://graffi.us/fora/DUG/gd/t1.php
oraz taki skrypcik:
http://graffi.us/fora/DUG/gd/t.txt
i odpowiednio jego wynik:
http://graffi.us/fora/DUG/gd/t.php
oba są troche złe :(
a mianowicie, ten pierwszy nie jest przeźroczysty odpowiednio
a ten drugi jest przeźroczysty podczas rysowania (bo ten termometr jest przeźroczysty) ale już wynik wygenerowany jest zły
co poprawiać aby termometr był przeźroczysty, aby rtęć narysowana była pod termometrem i aby sam obrazek w wyniku był też przeźroczysty (ale zamotałem :P )
obrazki składowe z których jest to rysowane to:
http://graffi.us/fora/DUG/gd/img/termometr.png
Offline



Użytkownik
narysowałem se ImageMagickiem :P
jakby ktoś chciał to:
<?php
date_default_timezone_set('Europe/Berlin');
$image = new Imagick();
$image->newImage(70, 280, 'none');
$image->setImageFormat('png');
$termometr = new Imagick('img/termometr.png');
$rtec = new Imagick('img/rtec_zielona.png');
$temp=_wyjete_z_bazy_ ;
$zero=143;
$wysokoscSlupka = abs($temp*2.2);
if ($temp > 0) {
$pozycja0 = $zero - $wysokoscSlupka;
$wysokoscSlupka+=80;
$textX=12;
} else {
$pozycja0 = $zero + $wysokoscSlupka;
$wysokoscSlupka+=(65 - $wysokoscSlupka);
$textX=8;
}
$temperatura = new Imagick();
$temperatura->newImage(30, $wysokoscSlupka, new ImagickPixel("rgb(104, 191, 49)")); // rgba(r, g, b, a);
$image->compositeImage($temperatura, $temperatura->getImageCompose(), 20, $pozycja0);
$image->compositeImage($termometr, $termometr->getImageCompose(), 0, 0);
$draw = new ImagickDraw();
$draw->setFillColor('black');
$draw->setFont('fonts/Arial_Black.ttf');
$draw->setFontSize(12);
$image->annotateImage($draw, $textX, 248, 0, $temp.'°C');
if (isset($_GET['base64'])) {
ob_start();
echo $image;
$contents = ob_get_contents();
ob_end_clean();
echo base64_encode($contents);
} else {
header('Content-type: image/png');
echo $image;
}
?>Ostatnio edytowany przez Graffi (2015-10-02 13:30:21)
Offline