Image Class (Foto's bewerken)
Auteur: Mulle - 13 november 2004 - 11:43 - Gekeurd door: Dennisvb - Hits: 11624 - Aantal punten: 4.75 (8 stemmen)
Dit is een klasse om foto's te wijzigen en op te slaan:
-Foto wijzigen naar werkelijke opgegeven maten
-Foto wijzigen naar de maximum grote die is opgegeven
-Foto schalen
-Copyright plaatsen met een image
-Copyright plaatsen met gewone tekst
-Opslaan in de map waar je wenst
-Nieuwe naam aan geven
-Ander formaat opslaan
-Info ophalen van de nieuwe foto
-Fouten weergave
-Negatief maken van foto
-Spiegelen van foto
-Onder een hoek zetten van foto
-Je kan nu ook de positie instellen van de copyright (Berekend van de linker bendenhoek)
De klasse is getest met PHP Version 4.3.7 & GD-Library 2.0.23.
Hoe te gebruiken:
Alle velden met HOOFDLETTERS zijn verplicht, die met kleineletters niet.
-Hoe de classe aanroepen
$image = new image("IMAGE"); //Roept de klasse image aan
FUNCTIE: Roept de klasse IMAGE aan samen met de te gebruiken file
IMAGE: De foto die je wenst te gebruiken
File types: JPEG, PNG, GIF, BMP
VOORBEELD:
$image = new image("test.jpg"); //file "test.jpg" staat in de zelfde map als het script
-Afbeelding resizen
$image->set_new_size("BREEDTE","HOOGTE","formaat_behouden","rgb_r","rgb_g","rgb_b");
FUNCTIE: Wijzigd de grote van de foto's.
BREEDTE: De breedte van de nieuwe foto
HOOGTE: De hoogte van de nieuwe foto
formaat_behouden: true/false //Standaar op false
true: De foto krijgt de werkelijke opgegeven afmeting (Met bijkomende vulling)
false: De foto krijgt de max. opgegeven afmetingen (Zonder vulling)
rgb_r: geeft de kleur van de bijkomende vulling //enkel van toepassing als "formaat_behouden" = true
waarde van 0 tot 255. Kleur rood //standaard op 255
rgb_g: geeft de kleur van de bijkomende vulling //enkel van toepassing als "formaat_behouden" = true
waarde van 0 tot 255. Kleur groen //standaard op 255
rgb_b: geeft de kleur van de bijkomende vulling //enkel van toepassing als "formaat_behouden" = true
waarde van 0 tot 255. Kleur blauw //standaard op 255
VOORBEELD:
$image->set_new_size("200","200"); //De foto krijgt de max. opgegeven breedte of hoogte
$image->set_new_size("200","200",true,0,0,0); //De foto heeft de werkelijke opgegeven afmeting met een witte opvulling
-Afbeelding schalen
$image->set_scale_ratio("SCHAAL");
FUNCTIE: Wijzigd de grote van de foto's met opgegeven schaal
SCHAAL: (In procent opgeven) Foto halveren = 50
VOORBEELD:
$image->set_scale_ratio("50"); //Foto wordt met de helf verkleind 50%
-Copyright op afbeelding plaatsen (Copyright is hier ook een afbeelding)
$image->set_copyright_img("COPYRIGHT_IMG","px_h","px_w");
FUNCTIE: Plaats een copyright afbeelding op de foto
COPYRIGHT_IMG: De copyright die je wenst te gebruiken
File types: JPEG, PNG, GIF, BMP
Grote: Is niet van belang, wordt automatisch aangepast als die te groot is
px_h: Aantal pixels van de linker onderhoek naar boven //Standaard 0
px_w: Aantal pixels van de linker onderhoek naar rechts //Standaard 0
VOORBEELD:
$image->set_copyright_img("copy.png"); //de file "copy.png" wordt gebruikt als copyright op de foto
$image->set_copyright_img("copy.png",5,5); //de file "copy.png" wordt 5 px naar boven en 5 px naar rechs verschoven
-Copyright op afbeelding plaatsen (Copyright is hier gewone tekst)
$image->set_copyright_text("COPYRIGHT_TEXT","font_size","font","rgb_r","rgb_g","rgb_b","px_h","px_w");
FUNCTIE: Plaats een copyright tekst op de foto
COPYRIGHT_TEXT: De copyright die je wenst te gebruiken in tekst vorm
font_size: Grote van de tekens //Standaard op 10
font: Lettertype //Standaard op times.ttf
rgb_r: geeft de kleur van de tekst weer
waarde van 0 tot 255. Kleur rood //standaard op 0
rgb_g: geeft de kleur van de tekst weer
waarde van 0 tot 255. Kleur groen //standaard op 0
rgb_b: geeft de kleur van de tekst weer
waarde van 0 tot 255. Kleur blauw //standaard op 0
px_h: Aantal pixels van de linker onderhoek naar boven //Standaard 0
px_w: Aantal pixels van de linker onderhoek naar rechts //Standaard 5
VOORBEELD:
$image->set_copyright_text("Copyright © 2004 CheatsKingdom","15","arial.ttf",0,0,0);
//de tekst "Copyright © 2004 CheatsKingdom" wordt gebruikt als copyright op de foto
$image->set_copyright_text("Copyright © 2004 CheatsKingdom","15","arial.ttf",0,0,0,5,5);
//idem als vorige & wordt 5 px naar boven en 5 px naar rechs verschoven
-Afbeelding negatief maken
$image->set_negatif();
FUNCTIE: Maakt een negatief van de foto
VOORBEELD:
$image->set_negatif(); //Foto wordt een negatief
-Afbeelding schuin plaatsen
$image->set_skew("GRADEN","as","rgb_r","rgb_g","rgb_b");
FUNCTIE: Zet de foto onder de aangegeven hoek.
GRADEN: Aantal graden dat hij gedraaid wordt
as: Rond welke as wordt de foto gedraaid
waarde "hor" //De horizontale as (Standaard), "ver" //De vertikale as
rgb_r: geeft de kleur van de bijkomende vulling
waarde van 0 tot 255. Kleur rood //standaard op 255
rgb_g: geeft de kleur van de bijkomende vulling
waarde van 0 tot 255. Kleur groen //standaard op 255
rgb_b: geeft de kleur van de bijkomende vulling
waarde van 0 tot 255. Kleur blauw //standaard op 255
VOORBEELD:
$image->set_skew("30"); //De foto wordt 30° gedraaid t.o.v. de horizontale as met witte achtergrond
$image->set_skew("30","ver",0,0,0); //De foto wordt 30° gedraaid t.o.v. de vertikale as met zwarte achtergrond
-Afbeelding 180 graden draaien
$image->set_flip("as");
FUNCTIE: De foto spiegelen
as: Rond welke as wordt de foto gespiegeld
waarde "hor" //De horizontale as (Standaard), "ver" //De vertikale as
VOORBEELD:
$image->set_flip(); //De foto wordt rond de horizontale as gespiegeld
$image->set_flip("ver"); //De foto wordt rond de vertikale as gespiegeld
-Afbeelding opslaan in map
$image->set_dir("DIR","FILE_NAME","file_type","kwaliteit");
FUNCTIE: Plaats de foto in de map
DIR: De map waar de foto moet staan
FILE_NAME: Naam van de foto
file_type: Type van de foto jpeg, png. Standaard jpeg
kwaliteit: Kwaliteit van de foto, enkel voor jpeg files. Waarde 0 tot 100. Standaard 95.
VOORBEELD:
$image->set_dir("temp/","nieuw"); //Foto wordt in de map "temp" met naam nieuw.jpg opgeslaan
$image->set_dir("temp/","nieuw","png"); //Foto wordt in de map "temp" met naam nieuw.png opgeslaan
-Afbeeldings info
$image->get_info("aantal decimalen");
FUNCTIE: Geeft een Array terug met nieuwe info over de file
aantal decimalen: Het maximum aantal decimalen //Standaard 2
VOORBEELD:
$info = $image->get_info(); //Krijg een array weer
$info["byte"] //De grote in bytes
$info["kbyte"] //De grote in kilobytes
$info["mbyte"] //De grote in megabytes
$info["gbyte"] //De grote in gigabytes
$info["width"] //De breedte
$info["height"] //De hoogte
$info["dirname"] //De locatie waar die is opgeslagen
$info["basename"] //Naam van de file
$info["extension"] //Extentie van de file
-Errors ophalen die tijdens het proces zijn opgetreden
$image->get_error();
FUNCTIE: Geeft het probleem weer als die voorkomt
VOORBEELD:
$error = $image->get_error(); //De fout die zou optreden
|
Code: |
-----CLASS.IMAGE.INC.PHP-----
<?
error_reporting(E_ALL);
/*********************************************************************************************************************************
* CLASS.IMAGE.INC.PHP *
**********************************************************************************************************************************
* Auteur: Tom Mullebrouck *
* E-mail: cheatskingdom@telenet.be *
* Website: http://www.cheatskingdom.be *
* Copyright: Copyright © 2004 CheatsKingdom *
**********************************************************************************************************************************
* Gemaakt: 06/06/2004 *
* Gewijzigd: 16/06/2004 *
*********************************************************************************************************************************/
/*********************************************************************************************************************************
* DEZE KLASSE IS MEDE MOGELIJK GEMAAKT DOOR: *
**********************************************************************************************************************************
* NAAM: Gijs van Dulmen *
* E-mail: *
* Website: http://www.phphelper.nl *
* Hulp: *
* -Negatief maken van de foto *
* -Spiegelen van de foto *
* -Onder een hoek plaatsen van de foto *
*********************************************************************************************************************************/
class image{
var $error_no = "Script succesvol uitgevoerd";
var $error_file_type_img = "File type wordt niet ondersteund (Afbeelding)";
var $error_file_type_cr = "File type wordt niet ondersteund (Copyright)";
var $error_file_not_found_img = "File bestaat niet (Afbeelding)";
var $error_file_not_found_cr = "File bestaat niet (Copyright)";
var $error_size = "Er is een probleem met de maten";
var $error_text_long = "Tekst van de copyright is te groot voor het plaatje";
function image($img){
$this->error_bool = true;
if(file_exists($img)){
list($this->width,$this->height,$this->type) = getimagesize($img);
switch($this->type){
case 1:
$this->imgold = imagecreatefromgif($img);
break;
case 2:
$this->imgold = imagecreatefromjpeg($img);
break;
case 3:
$this->imgold = imagecreatefrompng($img);
break;
case 15:
$this->imgold = imagecreatefromwbmp($img);
break;
default:
$this->error = $this->error_file_type_img;
$this->error_bool = false;
}
if($this->error_bool){
$this->imgnew = $this->imgold;
$this->newwidth = $this->width;
$this->newheight = $this->height;
}
}
else{
$this->error = $this->error_file_not_found_img;
$this->error_bool = false;
}
}
function set_new_size($newwidth,$newheight,$true = false,$r = 255,$g = 255,$b = 255){
if(empty($newwidth) || empty($newheight)){
$this->error = $this->error_size;
$this->error_bool = false;
}
if($this->error_bool){
$widthratio = $this->width/$newwidth;
$heightratio = $this->height/$newheight;
$imgnewwidth = $newwidth;
$imgnewheight = $newheight;
if($widthratio <= $heightratio){
$imgnewwidth = $this->width/$heightratio;
if($true)
$middenwidth = $newwidth / 2 - $imgnewwidth / 2;
else{
$middenwidth = 0;
$newwidth = $imgnewwidth;
$newheight = $imgnewheight;
}
$middenheight = 0;
}
else{
$imgnewheight = $this->height/$widthratio;
if($true)
$middenheight = $newheight / 2 - $imgnewheight / 2;
else{
$middenheight = 0;
$newwidth = $imgnewwidth;
$newheight = $imgnewheight;
}
$middenwidth = 0;
}
$imgnew = imagecreatetruecolor($newwidth,$newheight);
$color = imagecolorallocate($imgnew, $r, $g, $b);
imagefill($imgnew, 0, 0, $color);
imagecopyresampled($imgnew, $this->imgold, $middenwidth, $middenheight, 0, 0, $imgnewwidth, $imgnewheight, $this->width, $this->height);
$this->imgnew = $imgnew;
$this->newwidth = $newwidth;
$this->newheight = $newheight;
}
}
function set_scale_ratio($ratio){
if(empty($ratio)){
$this->error = $this->error_size;
$this->error_bool = false;
}
if($this->error_bool){
$imgnewwidth = $this->width / 100 * $ratio;
$imgnewheight = $this->height / 100 * $ratio;
$imgnew = imagecreatetruecolor($imgnewwidth,$imgnewheight);
imagecopyresampled($imgnew, $this->imgold, 0, 0, 0, 0, $imgnewwidth, $imgnewheight, $this->width, $this->height);
$this->imgnew = $imgnew;
$this->newwidth = $imgnewwidth;
$this->newheight = $imgnewheight;
}
}
function set_copyright_img($copyimg,$pos_h = 0,$pos_w = 0){
if($this->error_bool){
if(file_exists($copyimg)){
list($copywidth,$copyheight,$copytype) = getimagesize($copyimg);
switch($copytype){
case 1:
$copyimgold = imagecreatefromgif($copyimg);
break;
case 2:
$copyimgold = imagecreatefromjpeg($copyimg);
break;
case 3:
$copyimgold = imagecreatefrompng($copyimg);
break;
case 15:
$copyimgold = imagecreatefromwbmp($copyimg);
break;
default:
$this->error = $this->error_file_type_cr;
$this->error_bool = false;
}
if($copywidth + $pos_w > $this->newwidth){
$copynewheight = $copyheight * ($this->newwidth + $pos_w) / $copywidth;
$copynewwidth = $this->newwidth - $pos_w;
}
else{
$copynewheight = $copyheight;
$copynewwidth = $copywidth;
}
if($this->error_bool)
imagecopyresampled($this->imgnew, $copyimgold, 0 + $pos_w, $this->newheight - $copynewheight - $pos_h, 0, 0, $copynewwidth, $copynewheight, $copywidth, $copyheight);
}
else{
$this->error = $this->error_file_not_found_cr;
$this->error_bool = false;
}
}
}
function set_copyright_text($copytext,$fontsize = 10,$font = 'times.ttf',$r = 0,$g = 0,$b = 0,$pos_h = 0,$pos_w = 5){
if($this->error_bool){
$bbox = imagettfbbox($fontsize, 0, $font, $copytext);
if($bbox[2] - $bbox[0] + $pos_w > $this->newwidth){
$this->error = $this->error_text_long;
$this->error_bool = false;
}
else{
$color = imagecolorallocate($this->imgnew, $r, $g, $b);
imagettftext($this->imgnew,$fontsize,0,0 + $pos_w,$this->newheight - $bbox[1] - $pos_h,$color,$font,$copytext);
}
}
}
function set_negatif(){
if($this->error_bool){
for($i=0;$i<$this->newwidth;$i++){
for($j=0;$j<$this->newheight;$j++){
$rgb = ImageColorAt($this->imgnew,$i,$j);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;
$color = imagecolorallocate($this->imgnew,255-$r,255-$g,255-$b);
imagesetpixel($this->imgnew,$i,$j,$color);
}
}
}
}
function set_skew($degree,$as = "hor",$r = 255,$g = 255,$b = 255){
if($this->error_bool){
if($as == "ver"){
$new_height = ROUND(tan(deg2rad(abs($degree)))*$this->newwidth + $this->newheight);
$imgnew_temp = imagecreatetruecolor($this->newwidth,$new_height);
$imgnewheight = $new_height;
$imgnewwidth = $this->newwidth;
}
else{
$new_width = ROUND(tan(deg2rad(abs($degree)))*$this->newheight + $this->newwidth);
$imgnew_temp = imagecreatetruecolor($new_width,$this->newheight);
$imgnewheight = $this->newheight;
$imgnewwidth = $new_width;
}
$color = imagecolorallocate($imgnew_temp, $r, $g, $b);
imagefill($imgnew_temp, 0, 0, $color);
for($i=0;$i<$this->newwidth;$i++){
for($j=0;$j<$this->newheight;$j++){
$rgb = ImageColorAt($this->imgnew,$i,$j);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;
$color = imagecolorallocate($imgnew_temp,$r,$g,$b);
imagesetpixel($this->imgnew,$i,$j,$color);
if($as == "ver"){
if ($degree >= 0)
imagesetpixel($imgnew_temp,$i,(tan(deg2rad($degree))*($this->newwidth-$i))+$j,$color);
else
imagesetpixel($imgnew_temp,$i,$j-(tan(deg2rad($degree))*($this->newwidth+$i))-tan(deg2rad(abs($degree)))*$this->newwidth,$color);
}
else{
if ($degree >= 0)
imagesetpixel($imgnew_temp,(tan(deg2rad($degree))*($this->newheight-$j))+$i,$j,$color);
else
imagesetpixel($imgnew_temp,$i-(tan(deg2rad($degree))*($this->newheight+$j))-tan(deg2rad(abs($degree)))*$this->newheight,$j,$color);
}
}
}
$this->imgnew = $imgnew_temp;
$this->newwidth = $imgnewwidth;
$this->newheight = $imgnewheight;
}
}
function set_flip($as = "hor"){
if($this->error_bool){
$imgnew_temp = imagecreatetruecolor($this->newwidth,$this->newheight);
for($i=0;$i<$this->newwidth;$i++){
for($j=0;$j<$this->newheight;$j++){
$rgb = ImageColorAt($this->imgnew,$i,$j);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;
$color = imagecolorallocate($this->imgnew,$r,$g,$b);
if($as == "ver")
imagesetpixel($imgnew_temp,$this->newwidth-$i-1,$j,$color);
else
imagesetpixel($imgnew_temp,$i,$this->newheight-$j-1,$color);
}
}
$this->imgnew = $imgnew_temp;
}
}
function set_dir($dir,$file_name,$file_type = "jpeg",$qual = 95){
if($this->error_bool){
switch($file_type){
case "gif":
$new_file_name = $this->file_control($dir,"gif",$file_name);
$this->file = $dir.$new_file_name.".gif";
imagegif($this->imgnew, $dir.$new_file_name.".gif");
break;
case "jpeg":
$new_file_name = $this->file_control($dir,"jpg",$file_name);
$this->file = $dir.$new_file_name.".jpg";
imagejpeg($this->imgnew, $dir.$new_file_name.".jpg" ,$qual);
break;
case "png":
$new_file_name = $this->file_control($dir,"png",$file_name);
$this->file = $dir.$new_file_name.".png";
imagepng($this->imgnew, $dir.$new_file_name.".png" ,$qual);
break;
case "bmp":
$new_file_name = $this->file_control($dir,"bmp",$file_name);
$this->file = $dir.$new_file_name.".bmp";
imagewbmp($this->imgnew, $dir.$new_file_name.".bmp");
break;
default:
$new_file_name = $this->file_control($dir,"jpg",$file_name);
$this->file = $dir.$new_file_name.".jpg";
imagejpeg($this->imgnew, $dir.$new_file_name.".jpg" ,$qual);
}
imagedestroy($this->imgnew);
}
}
function get_info($round = "2"){
if($this->error_bool){
$file_info["byte"] = ROUND(filesize ($this->file),$round);
$file_info["kbyte"] = ROUND($file_info["byte"]/1024,$round);
$file_info["mbyte"] = ROUND($file_info["kbyte"]/1024,$round);
$file_info["gbyte"] = ROUND($file_info["mbyte"]/1024,$round);
list($file_info["width"],$file_info["height"],$file_info["type_nr"]) = getimagesize($this->file);
$pathinfo = pathinfo("$this->file");
$file_info["dirname"] = $pathinfo["dirname"];
$file_info["basename"] = $pathinfo["basename"];
$file_info["extension"] = $pathinfo["extension"];
return $file_info;
}
}
function get_error(){
if(empty($this->error))
$this->error = $this->error_no;
return $this->error;
}
function file_control($dir,$ext,$file_name){
$nr = NULL;
$i = 1;
while (file_exists($dir.$file_name.$nr.".".$ext)) {
$nr = "(".$i++.")";
}
return $file_name.$nr;
}
}
?>
<? /********************************************************************************************************************************* * CLASS.IMAGE.INC.PHP * ********************************************************************************************************************************** * Auteur: Tom Mullebrouck * * E-mail: cheatskingdom@telenet.be * * Website: http://www.cheatskingdom.be * * Copyright: Copyright © 2004 CheatsKingdom * ********************************************************************************************************************************** * Gemaakt: 06/06/2004 * * Gewijzigd: 16/06/2004 * *********************************************************************************************************************************/ /********************************************************************************************************************************* * DEZE KLASSE IS MEDE MOGELIJK GEMAAKT DOOR: * ********************************************************************************************************************************** * NAAM: Gijs van Dulmen * * E-mail: * * Website: http://www.phphelper.nl * * Hulp: * * -Negatief maken van de foto * * -Spiegelen van de foto * * -Onder een hoek plaatsen van de foto * *********************************************************************************************************************************/ class image{ var $error_no = "Script succesvol uitgevoerd"; var $error_file_type_img = "File type wordt niet ondersteund (Afbeelding)"; var $error_file_type_cr = "File type wordt niet ondersteund (Copyright)"; var $error_file_not_found_img = "File bestaat niet (Afbeelding)"; var $error_file_not_found_cr = "File bestaat niet (Copyright)"; var $error_size = "Er is een probleem met de maten"; var $error_text_long = "Tekst van de copyright is te groot voor het plaatje"; function image($img){ $this->error_bool = true; switch($this->type){ case 1: $this->imgold = imagecreatefromgif($img); break; case 2: $this->imgold = imagecreatefromjpeg($img); break; case 3: $this->imgold = imagecreatefrompng($img); break; case 15: $this->imgold = imagecreatefromwbmp($img); break; default: $this->error = $this->error_file_type_img; $this->error_bool = false; } if($this->error_bool){ $this->imgnew = $this->imgold; $this->newwidth = $this->width; $this->newheight = $this->height; } } else{ $this->error = $this->error_file_not_found_img; $this->error_bool = false; } } function set_new_size($newwidth,$newheight,$true = false,$r = 255,$g = 255,$b = 255){ $this->error = $this->error_size; $this->error_bool = false; } if($this->error_bool){ $widthratio = $this->width/$newwidth; $heightratio = $this->height/$newheight; $imgnewwidth = $newwidth; $imgnewheight = $newheight; if($widthratio <= $heightratio){ $imgnewwidth = $this->width/$heightratio; if($true) $middenwidth = $newwidth / 2 - $imgnewwidth / 2; else{ $middenwidth = 0; $newwidth = $imgnewwidth; $newheight = $imgnewheight; } $middenheight = 0; } else{ $imgnewheight = $this->height/$widthratio; if($true) $middenheight = $newheight / 2 - $imgnewheight / 2; else{ $middenheight = 0; $newwidth = $imgnewwidth; $newheight = $imgnewheight; } $middenwidth = 0; } $imgnew = imagecreatetruecolor($newwidth,$newheight); $color = imagecolorallocate($imgnew, $r, $g, $b); imagefill($imgnew, 0, 0, $color); imagecopyresampled($imgnew, $this->imgold, $middenwidth, $middenheight, 0, 0, $imgnewwidth, $imgnewheight, $this->width, $this->height); $this->imgnew = $imgnew; $this->newwidth = $newwidth; $this->newheight = $newheight; } } function set_scale_ratio($ratio){ $this->error = $this->error_size; $this->error_bool = false; } if($this->error_bool){ $imgnewwidth = $this->width / 100 * $ratio; $imgnewheight = $this->height / 100 * $ratio; $imgnew = imagecreatetruecolor($imgnewwidth,$imgnewheight); imagecopyresampled($imgnew, $this->imgold, 0, 0, 0, 0, $imgnewwidth, $imgnewheight, $this->width, $this->height); $this->imgnew = $imgnew; $this->newwidth = $imgnewwidth; $this->newheight = $imgnewheight; } } function set_copyright_img($copyimg,$pos_h = 0,$pos_w = 0){ if($this->error_bool){ switch($copytype){ case 1: $copyimgold = imagecreatefromgif($copyimg); break; case 2: $copyimgold = imagecreatefromjpeg($copyimg); break; case 3: $copyimgold = imagecreatefrompng($copyimg); break; case 15: $copyimgold = imagecreatefromwbmp($copyimg); break; default: $this->error = $this->error_file_type_cr; $this->error_bool = false; } if($copywidth + $pos_w > $this->newwidth){ $copynewheight = $copyheight * ($this->newwidth + $pos_w) / $copywidth; $copynewwidth = $this->newwidth - $pos_w; } else{ $copynewheight = $copyheight; $copynewwidth = $copywidth; } if($this->error_bool) imagecopyresampled($this->imgnew, $copyimgold, 0 + $pos_w, $this->newheight - $copynewheight - $pos_h, 0, 0, $copynewwidth, $copynewheight, $copywidth, $copyheight); } else{ $this->error = $this->error_file_not_found_cr; $this->error_bool = false; } } } function set_copyright_text($copytext,$fontsize = 10,$font = 'times.ttf',$r = 0,$g = 0,$b = 0,$pos_h = 0,$pos_w = 5){ if($this->error_bool){ $bbox = imagettfbbox($fontsize, 0, $font, $copytext); if($bbox[2] - $bbox[0] + $pos_w > $this->newwidth){ $this->error = $this->error_text_long; $this->error_bool = false; } else{ $color = imagecolorallocate($this->imgnew, $r, $g, $b); imagettftext($this->imgnew,$fontsize,0,0 + $pos_w,$this->newheight - $bbox[1] - $pos_h,$color,$font,$copytext); } } } function set_negatif(){ if($this->error_bool){ for($i=0;$i<$this->newwidth;$i++){ for($j=0;$j<$this->newheight;$j++){ $rgb = ImageColorAt($this->imgnew,$i,$j); $r = ($rgb >> 16) & 0xFF; $g = ($rgb >> 8) & 0xFF; $b = $rgb & 0xFF; $color = imagecolorallocate($this->imgnew,255-$r,255-$g,255-$b); imagesetpixel($this->imgnew,$i,$j,$color); } } } } function set_skew($degree,$as = "hor",$r = 255,$g = 255,$b = 255){ if($this->error_bool){ if($as == "ver"){ $imgnew_temp = imagecreatetruecolor($this->newwidth,$new_height); $imgnewheight = $new_height; $imgnewwidth = $this->newwidth; } else{ $imgnew_temp = imagecreatetruecolor($new_width,$this->newheight); $imgnewheight = $this->newheight; $imgnewwidth = $new_width; } $color = imagecolorallocate($imgnew_temp, $r, $g, $b); imagefill($imgnew_temp, 0, 0, $color); for($i=0;$i<$this->newwidth;$i++){ for($j=0;$j<$this->newheight;$j++){ $rgb = ImageColorAt($this->imgnew,$i,$j); $r = ($rgb >> 16) & 0xFF; $g = ($rgb >> 8) & 0xFF; $b = $rgb & 0xFF; $color = imagecolorallocate($imgnew_temp,$r,$g,$b); imagesetpixel($this->imgnew,$i,$j,$color); if($as == "ver"){ if ($degree >= 0) imagesetpixel ($imgnew_temp,$i,(tan(deg2rad($degree))*($this->newwidth-$i))+$j,$color); else imagesetpixel ($imgnew_temp,$i,$j-(tan(deg2rad($degree))*($this->newwidth+$i))-tan(deg2rad(abs($degree)))*$this->newwidth,$color); } else{ if ($degree >= 0) imagesetpixel ($imgnew_temp,(tan(deg2rad($degree))*($this->newheight-$j))+$i,$j,$color); else imagesetpixel ($imgnew_temp,$i-(tan(deg2rad($degree))*($this->newheight+$j))-tan(deg2rad(abs($degree)))*$this->newheight,$j,$color); } } } $this->imgnew = $imgnew_temp; $this->newwidth = $imgnewwidth; $this->newheight = $imgnewheight; } } function set_flip($as = "hor"){ if($this->error_bool){ $imgnew_temp = imagecreatetruecolor($this->newwidth,$this->newheight); for($i=0;$i<$this->newwidth;$i++){ for($j=0;$j<$this->newheight;$j++){ $rgb = ImageColorAt($this->imgnew,$i,$j); $r = ($rgb >> 16) & 0xFF; $g = ($rgb >> 8) & 0xFF; $b = $rgb & 0xFF; $color = imagecolorallocate($this->imgnew,$r,$g,$b); if($as == "ver") imagesetpixel($imgnew_temp,$this->newwidth-$i-1,$j,$color); else imagesetpixel($imgnew_temp,$i,$this->newheight-$j-1,$color); } } $this->imgnew = $imgnew_temp; } } function set_dir($dir,$file_name,$file_type = "jpeg",$qual = 95){ if($this->error_bool){ switch($file_type){ case "gif": $new_file_name = $this->file_control($dir,"gif",$file_name); $this->file = $dir.$new_file_name.".gif"; imagegif($this->imgnew, $dir.$new_file_name.".gif"); break; case "jpeg": $new_file_name = $this->file_control($dir,"jpg",$file_name); $this->file = $dir.$new_file_name.".jpg"; imagejpeg($this->imgnew, $dir.$new_file_name.".jpg" ,$qual); break; case "png": $new_file_name = $this->file_control($dir,"png",$file_name); $this->file = $dir.$new_file_name.".png"; imagepng($this->imgnew, $dir.$new_file_name.".png" ,$qual); break; case "bmp": $new_file_name = $this->file_control($dir,"bmp",$file_name); $this->file = $dir.$new_file_name.".bmp"; imagewbmp($this->imgnew, $dir.$new_file_name.".bmp"); break; default: $new_file_name = $this->file_control($dir,"jpg",$file_name); $this->file = $dir.$new_file_name.".jpg"; imagejpeg($this->imgnew, $dir.$new_file_name.".jpg" ,$qual); } imagedestroy($this->imgnew); } } function get_info($round = "2"){ if($this->error_bool){ $file_info["kbyte"] = ROUND($file_info["byte"]/1024,$round); $file_info["mbyte"] = ROUND($file_info["kbyte"]/1024,$round); $file_info["gbyte"] = ROUND($file_info["mbyte"]/1024,$round); list($file_info["width"],$file_info["height"],$file_info["type_nr"]) = getimagesize($this->file); $file_info["dirname"] = $pathinfo["dirname"]; $file_info["basename"] = $pathinfo["basename"]; $file_info["extension"] = $pathinfo["extension"]; return $file_info; } } function get_error(){ $this->error = $this->error_no; return $this->error; } function file_control($dir,$ext,$file_name){ $nr = NULL; $i = 1; $nr = "(".$i++.")"; } return $file_name.$nr; } } ?>
-----VOORBEELDEN-----
<?
//Voorbeeld (1): Foto "test.jpg" verkleinen naar de "werkelijke" afmetingen "300" x "300" en opslaan als "png" in map "temp" onder de naam "thumb"
$image = new image("test.jpg"); //image test.jpg ophalen
$image->set_new_size("300","300",true); //breedte 300 en hoogt 300 opgeven en omzetten naar de werkelijke maten met als achtergrondkleur(indien nodig) wit(standaard)
$image->set_dir("temp/","thumb","png"); //opslaan in map temp/ onder de naam thumb met als type png
echo $image->get_error(); //Error weergave
//Voorbeeld (2): Foto "test.jpg" verkleinen naar de "Maximum opgeheven" afmetingen "300" x "300" en opslaan als "png" in map "temp" onder de naam "thumb"
$image = new image("test.jpg"); //image test.jpg ophalen
$image->set_new_size("300","300"); //breedte 300 en hoogt 300 worden gecontroleerd. indien nodig zal hij de foto verkleinen naar de hoogste opgegeven waarde
$image->set_dir("temp/","thumb","png"); //opslaan in map temp/ onder de naam thumb met als type png
echo $image->get_error(); //Error weergave
//Voorbeeld (3): Foto "test.jpg" verkleinen naar de "werkelijke" afmetingen "300" x "300" en een copyright image "copy.png" opplaatsen en opslaan als "png" in map "temp" onder de naam "thumb"
$image = new image("test.jpg"); //image test.jpg ophalen
$image->set_new_size("300","300",true); //breedte 300 en hoogt 300 opgeven en omzetten naar de werkelijke maten met als achtergrondkleur(indien nodig) wit(standaard)
$image->set_copyright_img("copy.png"); //Plaatst de copyright image copy.png op de foto
$image->set_dir("temp/","thumb","png"); //opslaan in map temp/ onder de naam thumb met als type png
echo $image->get_error(); //Error weergave
//Voorbeeld (4): Foto "test.jpg" verkleinen naar de "werkelijke" afmetingen "300" x "300" en een copyright text "Copyright 2004" opplaatsen en opslaan als "png" in map "temp" onder de naam "thumb"
$image = new image("test.jpg"); //image test.jpg ophalen
$image->set_new_size("300","300",true); //breedte 300 en hoogt 300 opgeven en omzetten naar de werkelijke maten met als achtergrondkleur(indien nodig) wit(standaard)
$image->set_copyright_text("Copyright 2004"); //Plaatst de copyright text Copyright 2004 op de foto (standaard in het zwart)
$image->set_dir("temp/","thumb","png"); //opslaan in map temp/ onder de naam thumb met als type png
echo $image->get_error(); //Error weergave
//Voorbeeld (5): Foto "test.jpg" wordt een copyright text "Copyright 2004" opgeplaatst en opgeslaan als "png" in map "temp" onder de naam "thumb"
$image = new image("test.jpg"); //image test.jpg ophalen
$image->set_copyright_text("Copyright 2004"); //Plaatst de copyright text Copyright 2004 op de foto (standaard in het zwart)
$image->set_dir("temp/","thumb","png"); //opslaan in map temp/ onder de naam thumb met als type png
echo $image->get_error(); //Error weergave
?>
<? //Voorbeeld (1): Foto "test.jpg" verkleinen naar de "werkelijke" afmetingen "300" x "300" en opslaan als "png" in map "temp" onder de naam "thumb" $image = new image("test.jpg"); //image test.jpg ophalen $image->set_new_size("300","300",true); //breedte 300 en hoogt 300 opgeven en omzetten naar de werkelijke maten met als achtergrondkleur(indien nodig) wit(standaard) $image->set_dir("temp/","thumb","png"); //opslaan in map temp/ onder de naam thumb met als type png echo $image->get_error(); //Error weergave //Voorbeeld (2): Foto "test.jpg" verkleinen naar de "Maximum opgeheven" afmetingen "300" x "300" en opslaan als "png" in map "temp" onder de naam "thumb" $image = new image("test.jpg"); //image test.jpg ophalen $image->set_new_size("300","300"); //breedte 300 en hoogt 300 worden gecontroleerd. indien nodig zal hij de foto verkleinen naar de hoogste opgegeven waarde $image->set_dir("temp/","thumb","png"); //opslaan in map temp/ onder de naam thumb met als type png echo $image->get_error(); //Error weergave //Voorbeeld (3): Foto "test.jpg" verkleinen naar de "werkelijke" afmetingen "300" x "300" en een copyright image "copy.png" opplaatsen en opslaan als "png" in map "temp" onder de naam "thumb" $image = new image("test.jpg"); //image test.jpg ophalen $image->set_new_size("300","300",true); //breedte 300 en hoogt 300 opgeven en omzetten naar de werkelijke maten met als achtergrondkleur(indien nodig) wit(standaard) $image->set_copyright_img("copy.png"); //Plaatst de copyright image copy.png op de foto $image->set_dir("temp/","thumb","png"); //opslaan in map temp/ onder de naam thumb met als type png echo $image->get_error(); //Error weergave //Voorbeeld (4): Foto "test.jpg" verkleinen naar de "werkelijke" afmetingen "300" x "300" en een copyright text "Copyright 2004" opplaatsen en opslaan als "png" in map "temp" onder de naam "thumb" $image = new image("test.jpg"); //image test.jpg ophalen $image->set_new_size("300","300",true); //breedte 300 en hoogt 300 opgeven en omzetten naar de werkelijke maten met als achtergrondkleur(indien nodig) wit(standaard) $image->set_copyright_text("Copyright 2004"); //Plaatst de copyright text Copyright 2004 op de foto (standaard in het zwart) $image->set_dir("temp/","thumb","png"); //opslaan in map temp/ onder de naam thumb met als type png echo $image->get_error(); //Error weergave //Voorbeeld (5): Foto "test.jpg" wordt een copyright text "Copyright 2004" opgeplaatst en opgeslaan als "png" in map "temp" onder de naam "thumb" $image = new image("test.jpg"); //image test.jpg ophalen $image->set_copyright_text("Copyright 2004"); //Plaatst de copyright text Copyright 2004 op de foto (standaard in het zwart) $image->set_dir("temp/","thumb","png"); //opslaan in map temp/ onder de naam thumb met als type png echo $image->get_error(); //Error weergave ?>
Download code (.txt)
|
|
Stemmen |
Niet ingelogd. |
|