<?php
/**
* Créer une vignette d'une image JPEG
* un ratio <100 réduit l'image
* un ratio >100 agrandit l'image
* Fobec 2010
*/
class JPEGThumbnail {
private $img;
/**
* Redimensionner l'image
* @param string $file nom du fichier
* @param int $ratio coef de redimensionnement [10..1000]
*/
public function resize($file,$ratio) {
/** tester les paramètres **/
if (!file_exists($file)) {
throw new Exception("File not exists !!!");
}
if ($ratio<10 ||$ratio>1000) {
throw new Exception("Ratio range must be between 10 and 1000 !!!");
}
/** Ouvrir le JPEG inital **/
$oldim = imagecreatefromjpeg($file);
$oldw = imagesx($oldim);
$oldh = imagesy($oldim);
/** Calculer les nouvelles dimensions **/
$width = ($oldw/100)*$ratio;
$height = ($oldh/100)*$ratio;
/** Dessiner la vignette **/
$this->img = imagecreatetruecolor($width,$height);
imagecopyresampled($this->img,$oldim,0,0,0,0,$width,$height,$oldw,$oldh);
}
/**
* Afficher la vignette
*/
public function flush() {
header("Content-Type: image/jpeg");
imagejpeg($this->img);
}
}
?>