JPG maszkolás PNG-vel (+node images)

burney képe

Sziasztok!

A napokban sokat szenvedtem azzal, hogy hogyan lehet megoldani, hogy a node images-ben feltöltött fix nagyságú (100px X 100px)-es képet hogyan lehetne egy png-vel lemaszkolni, úgy hogy csak a kivágott azaz átlátszó területek maradjanak meg.

Keresgélés után rájöttem, hogy ez csak php-val oldaható meg. (D5-ben talán még a watermark modullal is, de D6-ra nem fejlesztettek.)

Erre azért lenne szükségem mert az oldalhoz írtam egy kis php parancsot a node.tpl.php-ba, hogy ha teaser nézetben vannak a cikkek akkor a rajta (minden node-hoz tartozó feltöltött 100x100-as node image kis képet 3oszlopban és 4sorban jelenítse meg, indexkép szerűen.
Ha pedig rákattintunk akkor vigyen minket az adott node-oldalára.
(Ezt a 3-mal való osztás maradékaival oldottam meg a NID-re (+CSS), de mind1 nem ez a lényeg...)

Visszatérve a watermark-hoz, találtam is egy használhatónak tűnő megoldást:
http://www.tutorial.hu/kepek-vizjelezese-png-keppel-es-php-val/
de képtelen vagyok eléri, hogy a 3oszlopos megoldásban az átalakított kép kerüljön.
Tehát ebbe: (én már teljesen elvesztettem a hitem a dologban :D )

<div class="index-column1">
	<?php if ((($node->nid)%3==0) && (($node->nid)>8) && (!$page)): ?><a href="<?php print $node_url ?>"><?php print $node->node_images; ?></a><?php endif; ?>
    </div>
<div class="index-column2">
	<?php if ((($node->nid)%3==2) && (($node->nid)>8) && (!$page)): ?><a href="<?php print $node_url ?>"><?php print $node->node_images; ?></a><?php endif; ?>
    </div>
<div class="index-column3">
	<?php if ((($node->nid)%3==1) && (($node->nid)>8) && (!$page)): ?><a href="<?php print $node_url ?>"><?php print $node->node_images; ?></a><?php endif; ?>
    </div>

Ha valakinek van valami jó praktikája, nagyon megköszönném ha megosztaná! :)

Drupal verzió: 
Fórum: 
mxr576 képe

Múltkor nézegettem modulokat és az imagecache actions (http://drupal.org/project/imagecache_actions) nevű imagecache kiegészítésben a "Add Overlay: file image to canvas (watermark)" action tud ilyet!

0
0
burney képe

Szerintem ezt meg lehet oldani php-val is és ez esetben én nem szeretek sok-sok modult feltelepíteni fölöslegesen...
De ha minden közél szakad, akkor kénytelen leszek... Azért köszönöm, mert lehet, hogy ez marad :S, de remélem nem!

0
0
mxr576 képe

Nem értem minek szórakozni a php-val mikor erre már van egy tökéletesen működő és még módosítást se kívánó megoldás. Főleg h imagecache-t általában használ az ember, mert nem fapadosan egyenként méretezgeti a képét... ez meg nem egy külön álló modul igazából csak az imagecache actionjeinek a kiegészítése. Szerintem feleslegesen pazarlod vele az idődet. Persze van amikor kell phpzni, de ez a kérdés most megoldható egyszerűbben.

0
0
burney képe

Értem, csak eredetileg úgy terveztem, hogy külön a node-images modul fogja azt a célt szolgálni, hogy az index képek felkerüljenek (ez már kész, csak ez a maszkos dolog nem),
és valamelyik másik image modullal pedig párdarab nagyobb képet. Ehhez szerintem nem kell imagecache, mert bármelyik egyszerű (image) modul megcsinálja azt, ha egy kép nagyobb akkor leméretezi. (sőt asszem majdnem ugyan így néz ki php-val is, mint amit én szeretnék használni) Mondjuk úgy is az lesz a vége, hogy felrakom azokat, de mind1!

Igazából nekem még mindig ez a PHP-s megoldás tetszene legjobban...

Amiért nem tudom véghezvinni az az, hogy egy látszólag jó php-kód nem csinálja amit kellene!

$maszk = imagecreatefrompng('circle.png');
$image = imagecreatefromjpeg('kep.jpg');
imagecopyresampled($image,$maszk,0,0,0,0,100,100,100,100);
.
.
.
<?php print $image; ?>

Szerintem egyedül az a baja, hogy nem találja a képeket (pedig mind a kettő ott van a téma könyvtárban meg persze ez a php is)...
/ha valami majd összejön leírogatom, h lehessen okulni belőle :) /
Üdv!
0
0