- Home
- Categorie
- Coding e Sistemistica
- Coding
- Dubbio su funzione ridimensionamento
-
Dubbio su funzione ridimensionamento
Salve ho trovato su internet una funzione per ridimensionare le immagini che trovo comoda ma secondo me ci sono degli errori:
[php]
class SimpleImage {var $image;
var $image_type;function load($filename) {
$image_info = getimagesize($filename); $this->image_type = $image_info[2]; if( $this->image_type == IMAGETYPE_JPEG ) { $this->image = imagecreatefromjpeg($filename); } elseif( $this->image_type == IMAGETYPE_GIF ) { $this->image = imagecreatefromgif($filename); } elseif( $this->image_type == IMAGETYPE_PNG ) { $this->image = imagecreatefrompng($filename); }}
function save($filename, $image_type=IMAGETYPE_JPEG, $compression=75, $permissions=null) {if( $image_type == IMAGETYPE_JPEG ) { imagejpeg($this->image,$filename,$compression); } elseif( $image_type == IMAGETYPE_GIF ) { imagegif($this->image,$filename); } elseif( $image_type == IMAGETYPE_PNG ) { imagepng($this->image,$filename); } if( $permissions != null) { chmod($filename,$permissions); }}
function output($image_type=IMAGETYPE_JPEG) {if( $image_type == IMAGETYPE_JPEG ) { imagejpeg($this->image); } elseif( $image_type == IMAGETYPE_GIF ) { imagegif($this->image); } elseif( $image_type == IMAGETYPE_PNG ) { imagepng($this->image); }}
function getWidth() {return imagesx($this->image);}
function getHeight() {return imagesy($this->image);}
function resizeToHeight($height) {$ratio = $height / $this->getHeight(); $width = $this->getWidth() * $ratio; $this->resize($width,$height);}
function resizeToWidth($width) {
$ratio = $width / $this->getWidth();
$height = $this->getheight() * $ratio;
$this->resize($width,$height);
}function scale($scale) {
$width = $this->getWidth() * $scale/100;
$height = $this->getheight() * $scale/100;
$this->resize($width,$height);
}function resize($width,$height) {
$new_image = imagecreatetruecolor($width, $height);
imagecopyresampled($new_image, $this->image, 0, 0, 0, 0, $width, $height, $this->getWidth(), $this->getHeight());
$this->image = $new_image;
}}
[/php]Se io già pongo **$image_type=IMAGETYPE_JPEG **a cosa serve successivamente l' if **$image_type ???
**Lo chiedo perchè a me serve proprio ridimensionare un png!Ditemi cosa ne pensate
-
Ciao Ivan88,
la parte a cui ti riferisci tu sono i parametri formali dei metodi della classe, in quel caso inserire:
[php]function save($filename, $image_type=IMAGETYPE_JPEG, $compression=75, $permissions=null) {
[/php]
Serve a dare dei valori di default nel caso in cui i parametri $image_type, $compression e $permissions non vengono passati.
-
Ah ok perfetto,
non sono ferratissimo sulle funzioni lolQuesto è il comando per rideimesionare e salvare una funzione
[php]
$image = new SimpleImage();
$image->load('picture.jpg');
$image->resizeToWidth(250);
$image->save('picture2.jpg');
[/php]Però siccome io devo salvarla in png dovrò cambiare l' ultima parte in:
[php]
$image->save('picture2.jpg', $image_type=IMAGETYPE_PNG); [/php]
-
Dovresti fare:
[php]$image->save('picture2.jpg', IMAGETYPE_PNG);[/php]
IMAGETYPE_PNG dovrebbe essere ovviamente una costante già definita.
-
Ok, capito, grazie
