Pagina 1 di 1

[PHP] Sovraimpressione PNG trasparente su PNG trasparente

Inviato: ven lug 12, 2013 5:50 pm
da Zane
Sto smanettando per risolvere un problema di visualizzazione nelle immagini che compaiono negli articoli. Quando il "timbro" TurboLab.it (una png trasparente) viene applicato ad un'altra png trasparente, si applica un brutto sfondo nero sullo sfondo della seconda (angolo basso-sinistra di questa immagine, ad esempio):

Immagine

Questa la parte di codice signficativa (chiaramente non prendetela "alla lettera" perchè senza tutto il contorno ovviamente non gira ;) )

Codice: Seleziona tutto

<?php
$img_tbr_res=imagecreatetruecolor($max_w, $max_h);
imageAlphaBlending($img_tbr_res, false);
imageSaveAlpha($img_tbr_res, true);

imagecopyresampled($img_tbr_res, $img_res, 0, 0, 0, 0, $max_w, $max_h, $img_w, $img_h);

$wm_original=imagecreatefrompng(Immagine::$pathWatermark);

$wm_resized = imagecreatetruecolor($wm_resized_w, $wm_resized_h);
imagecopymerge($wm_resized, $img_tbr_res, 0, 0, 10, $max_h-$wm_resized_h-10, $wm_resized_w, $wm_resized_h,100);

imagecopyresampled($wm_resized, $wm_original, 0, 0, 0, 0, $wm_resized_w, $wm_resized_h, $wm_original_w, $wm_original_h);

imagecopymerge($img_tbr_res, $wm_resized, 10, $max_h-$wm_resized_h-10, 0, 0, $wm_resized_w, $wm_resized_h, 100);
?>
Questi i riferimenti on i quali sto lavorando:
Prima o poi c'arrivo in fondo, ma se avete suggerimenti sono tutt'orecchi!



Sfondo nero su PNG trasparenti #12

Re: [PHP] Sovraimpressione PNG trasparente su PNG trasparent

Inviato: ven lug 12, 2013 7:05 pm
da Andy94
Al momento non ho modo di guardarci approfonditamente, però con questo codice applico con successo una immagine trasparente sopra ad un'altra.

Codice: Seleziona tutto

$image_1 = imagecreatefrompng('htc.png');
$image_2 = imagecreatefrompng('tli.png');
imagealphablending($image_1, true);
imagesavealpha($image_1, true);
imagecopy($image_1, $image_2, 0, 330, 0, 0, 450, 124);
imagepng($image_1, 'result.png');

echo '<img src="result.png" alt="result" />';
HTC è un'immagine simile alla tua avente dimensioni 500x455, TLI è il logo trasparente nostro ridimensionato a 450x124. Result è l'immagine complessivamente ottenuta, che rispetta le trasparenze.

Tuttavia nel codice, come puoi notare, non vengono fatti controlli relativamente alla dimensione che il watermark deve avere sulla base della dimensione dell'immagine in cui sarà ospitato. ;)

:ciao

Re: [PHP] Sovraimpressione PNG trasparente su PNG trasparent

Inviato: ven lug 12, 2013 10:08 pm
da Zane
Grazie Andy,
mi hai fatto accendere una lampadina: e se il problema stesse nel ridimensionamento iniziale? :penso Vediamo un po'...

Re: [PHP] Sovraimpressione PNG trasparente su PNG trasparent

Inviato: ven lug 12, 2013 10:26 pm
da Andy94

Re: [PHP] Sovraimpressione PNG trasparente su PNG trasparent

Inviato: mar set 17, 2013 8:58 pm
da Boo
È inutile cercare di risolvere un bug di un prodotto che ha millemila alternative.
Prova questo script se vuoi un watermark sulle tue immagini. Tuttavia se accetti un consiglio, eviterei completamente di farlo.
I visitatori si richiamano dai motori di ricerca, e le memorie ormai costano molto poco, quindi il vizio di rubare le immagini dagli altri siti appartiene agli anni '90. Francamente trovo più utile bloccare l'hotlinking tramite Apache piuttosto che riempire le immagini con i loghi.

Re: [PHP] Sovraimpressione PNG trasparente su PNG trasparent

Inviato: mer set 18, 2013 7:19 am
da Al3x
Boo ha scritto:il vizio di rubare le immagini dagli altri siti appartiene agli anni '90
TLI è in una fase di start-up e il watermark svolge più una funzione di diffusione del marchio piuttosto che una contromisura ai "furti" di immagini. Se qualcuno riusa il nostro materiale va bene, almeno ci fa pubblicità :)

Re: [PHP] Sovraimpressione PNG trasparente su PNG trasparent

Inviato: mer set 18, 2013 8:41 am
da Zane
Al3x ha scritto:diffusione del marchio piuttosto che una contromisura ai "furti" di immagini.
Proprio così :sorrisone

Grazie anche a Boo per il link: me lo studio sicuramente per vedere se trovo qualche spunto.

Re: [PHP] Sovraimpressione PNG trasparente su PNG trasparente

Inviato: sab feb 21, 2015 9:21 am
da Zane
Ok, sono riuscito a risolvere il problema principale e ora la situazione dovrebbe essere ok
Immagine
Anche le PNG a 8-bit si vedono ok
Immagine
Vado solo a fare un'ultima correzione per gestire un brutto bordo nero che si vede su questa PNG 8-bit trasparente poi chiudo il bug
Immagine

Re: Commenti a

Inviato: lun gen 16, 2017 5:34 pm
da CUB3
@Zane: mi sembra che il carimento delle immagini negli articoli sia molto più veloce rispetto a prima ma nel mio ultimo articolo ho un problema con un .png: lo sfondo trasparente non è rispettato e diventa nero. Ho provato più volte a caricare l'immagini anche dopo averla modficata ma la cosa non cambia.

Bug #533561781

Re: [PHP] Sovraimpressione PNG trasparente su PNG trasparente

Inviato: lun gen 16, 2017 10:38 pm
da Zane
Mi linki l'immagine così come si trova ora su TLI?

In ogni caso, non preoccuparti: non appena risolviamo il bug e rigeneriamo, va a posto automaticamente :approvo

Re: [PHP] Sovraimpressione PNG trasparente su PNG trasparente

Inviato: mar gen 17, 2017 9:46 am
da CUB3

Re: [PHP] Sovraimpressione PNG trasparente su PNG trasparente

Inviato: mar gen 17, 2017 2:02 pm
da Zane
Bene grazie ci guarderò. Tu intanto usala pure così dove ti serve

Re: [PHP] Sovraimpressione PNG trasparente su PNG trasparente

Inviato: mar gen 17, 2017 6:36 pm
da CUB3
Ok!
Se può essere di aiuto, la miniatura nell'anteprima dell'articolo è corretta:
https://turbolab.it/immagini/7697/min

Re: [PHP] Sovraimpressione PNG trasparente su PNG trasparente

Inviato: lun gen 23, 2017 5:42 pm
da CUB3
Nuovo articolo trasparenze rispettate!

Ma nel vecchio ancora no. Ho anche provato a ricaricare l'immagine ma non cambia niente.

Re: [PHP] Sovraimpressione PNG trasparente su PNG trasparente

Inviato: lun gen 23, 2017 8:52 pm
da Zane
Grazie CUB3,
ti confermo che a volte la trasparenza funziona bene, altre volte no. Non ho ancora capito da cosa dipenda, purtroppo.

Re: [PHP] Sovraimpressione PNG trasparente su PNG trasparente

Inviato: dom mag 28, 2017 12:23 am
da Zane
Ho scoperto che il problema si presenta quando sull'immagine non viene aggiunto il nostro logo (watermark).

Ad esempio:

Immagine

Evidentemente, il pezzo di codice che gestisce correttamente la trasparenza è all'interno di un if (watermark)...

Ripeto: non preoccupiamoci troppo del problema perché appena sistemo il codice vanno a posto anche tutte le immagini vecchie.

Re: [PHP] Sovraimpressione PNG trasparente su PNG trasparente

Inviato: lun gen 22, 2024 11:17 pm
da Zane
Ciao CUB3,
è passato molto tempo, ma ti confermo che su TLI 2.0 ho gestito molto meglio questa situazione (#12).

Ho anche aggiunto le specifiche immagini che mi hai indicato alla lista di quelle "a campione", da tenere d'occhio.

Non devi fare nulla: non appena andremo live con TLI 2.0, tutte le immagini problematiche inizieranno a vedersi correttamente.

Re: [PHP] Sovraimpressione PNG trasparente su PNG trasparente

Inviato: mar gen 23, 2024 9:37 am
da CUB3
:grazie
Grazie Zane!