Qware_core/lib/package/image.php

102 lines
2.4 KiB
PHP
Executable File

<?
/**
*Fichier image.php
* Ce fichier contient les classe de gestion d'upload des images
* Il est a inclure dans votre script avec l'instruction includePackage(upload.php)
*@author Olivier Devaine
*@since 2004/11/02
*@version 1.1
*@copyright GPL
*@package package
*/
if ( !defined('SYSTEM_IN') )
{
die("Hacking attempt");
}
includePackage("upload.php");
/**
* Classe imageToDb
*
* Permet la gestion des upload dans une bd<br/>
* Le fichier est a inclure dans votre script avec l'instruction includePackage(upload.php)
*@package package
*@subpackage file
*/
class ImageUploadToDir extends UploadToDir
{
/**#@+
*@access private
*/
/**#@-*/
/**
* makeThumbs actuellement la methode n'est prevue que pour la creation de thumbs lors de l'upload de l'image...
*@access public
*@param integer largeur max
*@param integer hauteur max
*@return booleen
*/
function makeThumbs($key, $path, $longest_side = 120)
{
$prefixe=(!defined("DATA_ACCES_TABLE_PREFIX"))?"": DATA_ACCES_TABLE_PREFIX ;
# code de creation de la thumbs -> recuperation du path du fichier...
$finalPath = $GLOBALS["CONF_DATA_PATH"]."data/upload/thumbs/thumbs-".$key."-".$longest_side.".png";
if (file_exists($path))
{
switch (strtolower($this->extentionFinder($path))) {
case "png": {
$im = imagecreatefrompng($path);
break;
}
case "jpg":
case "pjpeg":
case "jpeg":
case "jpe": {
$im = imagecreatefromjpeg($path);
break;
}
case "gif": {
$im = imagecreatefromgif($path);
break;
}
default: {
return false;
}
}
// some smart sizing
list($img_w, $img_h) = getimagesize($path);
if ($img_w > $img_h) {
// longest side is width: use that to calc thumb size
$thumb_w = $longest_side;
$thumb_h = (int)($longest_side * ($img_h / $img_w));
} else {
// longest side is height: use that to calc thumb size
$thumb_h = $longest_side;
$thumb_w = (int)($longest_side * ($img_w / $img_h));
}
$tim = imagecreatetruecolor($thumb_w, $thumb_h);
imagecopyresized($tim, $im, 0, 0, 0, 0, $thumb_w, $thumb_h, $img_w, $img_h);
imagepng($tim, $finalPath);
imagedestroy($im);
imagedestroy($tim);
return true;
} else {
$systemError=3;
$classe="Image";
$message="Chemin d'image incorrect";
addError($systemError,$classe,$message, __line__, __file__);
return false;
//die();
}
}
}
?>