Üdv!
A php imagick manualja alapján teszt jelleggel egy képre szöveget már tudok tenni:
http://php.net/manual/en/imagick.annotateimage.php
http://php.net/manual/en/imagick.addimage.php
<?php
// ...
$src_img = new Imagick("image.jpg");
$icon = new Imagick();
$icon->setFormat("ico");
$draw = new ImagickDraw();
$draw->setFillColor('black');
$geo=$src_img->getImageGeometry();
$size_w=$geo['width'];
$size_h=$geo['height'];
if (128/$size_w*$size_h>128) {
$src_img->scaleImage(128,0);
} else {
$src_img->scaleImage(0,128);
}
$src_img->cropImage(128, 128, 0, 0);
$clone = $src_img->clone();
$clone->scaleImage(16,0);
$icon->addImage($clone);
$clone = $src_img->clone();
$clone->scaleImage(32,0);
$icon->addImage($clone);
$clone = $src_img->clone();
$clone->scaleImage(64,0);
$icon->addImage($clone);
$clone = $src_img->clone();
$clone->scaleImage(128,0);
$icon->addImage($clone);
$draw->setFont('Bookman-DemiItalic');
$draw->setFontSize( 30 );
// Create text
$icon->annotateImage($draw, 10, 45, 0, 'Demo text');
$icon->writeImages("image.ico", true);
$src_img->destroy();
$icon->destroy();
$clone->destroy();
//...
?>
Az új képet csak úgy tudom megjelníteni egy html oldalban, hogy előtte el kell mentenem? (ahogy a fenti példában: writeImages(...))
Vagy meg lehet valahogy oldani, hogy az átalakított kép mentés nélkül megjeleníthető legyen? ("on the fly")
- 1521 megtekintés
Hozzászólások
header('Content-Type: image/'.$icon->getImageFormat());
echo $icon;
vagy, ha közvetlenül a kódból akarod akkor valami hasonló:
echo '<img src="data:image/'.$icon->getImageFormat().';base64,'.base64_encode($icon->getImageBlob()).'" alt="" />';`
- A hozzászóláshoz be kell jelentkezni
A header('Content-Type: image/...') megoldás azért nem jó, mert más html elem nem jelenik meg (csak a kép).
Tehát ezt a képet egy html oldalban szeretném felhasználni, azaz a képet kicsit módosítva szeretném megjeleníteni.
A másik megoldás jó lehet. kösz!
- A hozzászóláshoz be kell jelentkezni
A header('Content-Type: image/...') csak a képre vonatkozik. Ne akard a html kóddal együtt kiküldeni!
<img src="kep.php?sid=xxx">
, aztán a kep.php küldi image header-el a dinamikusan generált képet - amit szükség esetén a session id köt össze a html-el (ha az adott html oldallal összefüggő adatot akarsz a képre írni)
-------------------------------^v-----------------------------------
"Probléma esetén nyomják meg a piros gombot és nyugodjanak békében!"
- A hozzászóláshoz be kell jelentkezni
én is erre gondoltam, hogy a hearder() csak a képre vonatkozik. Ahogy én is írtam, a html többi elemét (táblázat, egyéb szövegek) nem jeleníti meg.
- A hozzászóláshoz be kell jelentkezni