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!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2015-10-01 15:28:16

  Graffi - Użytkownik

Graffi
Użytkownik
Skąd: Sulejówek
Zarejestrowany: 2005-10-03
Serwis

PHP GD i przezroczystość

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

 

#2  2015-10-02 13:29:40

  Graffi - Użytkownik

Graffi
Użytkownik
Skąd: Sulejówek
Zarejestrowany: 2005-10-03
Serwis

Re: PHP GD i przezroczystość

narysowałem se ImageMagickiem :P
jakby ktoś chciał to:

Kod:

<?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

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)