Utilizzo di cookies
Script GD libray con PHP Modelli Creare immagine Colore e trasparenza Disegnare Pennelli Misurare Filtri Testo Copy Salvare Miscellanea
GD library con PHP
imagecopyresized()
copia e ridimensiona una parte dell'immagine


e-book
cartaceo

Copia tutta o parte di un'immagine su di un'altra cambiandole dimensioni. 
Di solito è opportuno creare un'immagine nuova delle dimensioni necessarie per ricevere il risultato della copia sull'immagine sorgente. 
Per es. se dall'immagine sorgente viene copiato un particolare da ingrandire o ridurre di 3 volte, su queste nuove dimensioni dovrà essere creata l'immagine, per poi copiarci il particolare.
L'algoritmo di questa funzione tende a produrre risultati imperfetti, la più recente funzione imagecopyresampled() esegue lo stesso compito producendo generalmente risultati migliori seppur con maggior lavoro della CPU.
imagecopyresized(resource $ImmaNEW, resource $ImmaSorgente, 
int $x1, int  $y1, 
int $x2, int $y2, 
int $LargNEW, int $AlteNEW, 
int  $Larg, int $Alte);
Parametri
$ImmaNEW: Immagine di destinazione.
$ImmaSorgente: Immagine della quale verrà prelevata una parte.
$x1, $y1: coordinata x,y su $ImmaNEW
$x2, $y2: coordinata x,y del punto di origine lettura da $ImmaSorgente
$LargNEW, $AlteNEW: Nuova Larghezza e altezza di porzione immagine letta da $ImmaSorgente
$Alte, $Larg: Larghezza e Altezza di porzione immagine letta da $ImmaSorgente 
Nell'esempio seguente viene copiata la testa della statua del David e incollata in una nuova immagine ingendendola di  3 volte.


<?php 
$ImamgineSorgente = imagecreatefromjpeg('David.jpg');
$DistanzaDaX = 120; $DistanzaDaY = 8; // distanza del volto dall'amgolo x=0-y=0
$LarghezzaViso = 68; $AltezzaViso = 70; // dimensioni del particolare da ingrandire
$PercentualeVariazione = 2.5; // percentuale di modifica del particolare dell'immagine
// calcola le nuove misure
$AltezzaNEW = $AltezzaViso * $PercentualeVariazione;
$LarghezzaNEW = $LarghezzaViso  * $PercentualeVariazione;
// crea nuova immagine risultato della $PercentualeVariazione che per adesso è vuota
$ImmagineRisultato = imagecreatetruecolor($LarghezzaNEW, $AltezzaNEW);
// copia sulla nuova immagine, , il particolare ridimensionandolo
imagecopyresized($ImmagineRisultato, $ImamgineSorgente,
0, 0, 
$DistanzaDaX, $DistanzaDaY, 
$LarghezzaNEW, $AltezzaNEW, 
$LarghezzaViso, $AltezzaViso);


header('Content-Type: image/jpeg');
imagejpeg($ImmagineRisultato); // al browser
imagejpeg($ImmagineRisultato,"NomeFile.jpg"); // salva
// libera memoria
imagedestroy($ImamgineSorgente); imagedestroy($ImmagineRisultato); 
?> Risultato: