Scripts
PHP Imaginer
Uhm, dit script heet wat functies om een thumbnail te maken, schalen, spiegelen, draaien, negatief, graystyle en nog wat om met kleurtjes te spelen. Ik ga straks als ik terug kom ook verticaal spiegelen, borders, gradients, threshold, watermerk ect.. toevoegen. Suggesties mogen. Ik zal hier zo ook wat voorbeeldjes toevoegen.. (maar bij een klein stukje staat commentaar, had daar geen zin in) Klik Klik Klik Klik Klik Klik Klik Klik Klik Klik Klik Klik Klik Klik Klik Klik Klik Klik Klik Klik
php-imaginer
<?php
/*
PHP Imaginer v1
Tommy, [email protected]
http://rockstargaming.nl/
*/
/* Instellingen */
$_OPTIONS['output_dir'] = 'thumbs/';
/*
De standaard output map. Map hoeft niet te bestaan. NULL voor geen opslag op HDD.
*/
$_OPTIONS['image_dir'] = 'images/';
/*
De standaard image map. NULL voor geen standaard map. Met een '/' er achter.
*/
$_OPTIONS['quality'] = 100;
/*
Kwaliteit van jpeg image.
*/
// Thumbnail functie, use: thumb(image, [width], [height]);
/*
image:
- vereisd
- PNG, GIF of JPG
width & height:
- optioneel, één van beide kan ook weg gelaten worden
- integer
*/
function thumb($image, $width=false, $height=false, $output, $_OPTIONS) {
if (!empty($image) && !$width || !$height) {
if ($_OPTIONS['image_dir'] != NULL) {
$image = $_OPTIONS['image_dir'] . $image;
}
// Afmetingen orginele afbeelding ophalen
$image_size = getimagesize($image);
// Nieuwe afmetingen bepalen
if (isset($width) && isset($height)) {
$thumb_width = $width;
$thumb_height = $height;
} elseif (isset($width) && !isset($height)) {
$thumb_width = $width;
if ($width < $width) {
$thumb_width = $image_size[0];
$thumb_height = $image_size[1];
} elseif ($width >= $width) {
$a = $width / $image_size[0];
$thumb_height = $image_size[1] * $a;
}
} elseif (!isset($width) && isset($height)) {
$thumb_height = $height;
if ($image_size[1] < $height) {
$thumb_width = $image_size[0];
$thumb_height = $image_size[1];
} elseif ($image_size[1] >= $height) {
$a = $height / $image_size[1];
$thumb_width = $image_size[0] * $a;
}
}
// Mime-type ophalen
if ($image_size['mime'] == 'image/jpeg') {
$extention = 'jpeg';
} elseif ($image_size['mime'] == 'image/gif') {
$extention = 'gif';
} elseif ($image_size['mime'] == 'image/png') {
$extention = 'png';
}
header("Content-type: " . $image_size['mime']);
if ($extention == 'jpeg') {
$i = imagecreatefromjpeg($image);
} elseif ($extention == 'gif') {
$i = imagecreatefromgif($image);
} elseif ($extention == 'png') {
$i = imagecreatefrompng($image);
}
$new_image = imagecreatetruecolor($thumb_width, $thumb_height);
imagecopyresampled($new_image, $i, 0, 0, 0, 0, $thumb_width, $thumb_height, $image_size[0], $image_size[1]);
if ($extention == 'jpeg') {
imagejpeg($new_image, $_OUTPUT['dir'], $_OPTIONS['quality']);
} elseif ($extention == 'gif') {
imagegif($new_image, $_OUTPUT['dir']);
} elseif ($extention == 'png') {
imagepng($new_image, $_OUTPUT['dir'], 0);
}
imagedestroy($new_image);
}
}
function rotate($image, $degrees, $output, $_OPTIONS) {
if (!empty($image) && !$width || !$height) {
if ($_OPTIONS['image_dir'] != NULL) {
$image = $_OPTIONS['image_dir'] . $image;
}
// Afmetingen orginele afbeelding ophalen
$image_size = getimagesize($image);
// Mime-type ophalen
if ($image_size['mime'] == 'image/jpeg') {
$extention = 'jpeg';
} elseif ($image_size['mime'] == 'image/gif') {
$extention = 'gif';
} elseif ($image_size['mime'] == 'image/png') {
$extention = 'png';
}
header("Content-type: " . $image_size['mime']);
if ($extention == 'jpeg') {
$i = imagecreatefromjpeg($image);
} elseif ($extention == 'gif') {
$i = imagecreatefromgif($image);
} elseif ($extention == 'png') {
$i = imagecreatefrompng($image);
}
$new_image = imagerotate($i, $degrees, -1);
if ($extention == 'jpeg') {
imagejpeg($new_image, $_OUTPUT['dir'], $_OPTIONS['quality']);
} elseif ($extention == 'gif') {
imagegif($new_image, $_OUTPUT['dir']);
} elseif ($extention == 'png') {
imagepng($new_image, $_OUTPUT['dir'], 0);
}
imagedestroy($new_image);
}
}
function scale($image, $precent, $output, $_OPTIONS) {
if (!empty($image) && !$width || !$height) {
$image_size = getimagesize($_OPTIONS['image_dir'] . $image);
thumb($image, ($image_size[0] * $precent), NULL, $output, $_OPTIONS);
}
}
function reverse($image, $side='hor', $output, $_OPTIONS) {
if (!empty($image)) {
if ($_OPTIONS['image_dir'] != NULL) {
$image = $_OPTIONS['image_dir'] . $image;
}
// Afmetingen orginele afbeelding ophalen
$image_size = getimagesize($image);
// Mime-type ophalen
if ($image_size['mime'] == 'image/jpeg') {
$extention = 'jpeg';
} elseif ($image_size['mime'] == 'image/gif') {
$extention = 'gif';
} elseif ($image_size['mime'] == 'image/png') {
$extention = 'png';
}
header("Content-type: " . $image_size['mime']);
if ($extention == 'jpeg') {
$im = imagecreatefromjpeg($image);
} elseif ($extention == 'gif') {
$im = imagecreatefromgif($image);
} elseif ($extention == 'png') {
$im = imagecreatefrompng($image);
}
$x = $image_size[0];
$y = $image_size[1];
$new_image = imagecreatetruecolor($x, $y);
for ($i = 0; $i < $y; $i++) {
for ($j = 0; $j < $x; $j++) {
$c = imagecolorat($im, ($x - 1) - $j, $i);
$r = ($c >> 16) & 0xFF;
$g = ($c >> 8) & 0xFF;
$b = $c & 0xFF;
$clr = imagecolorallocate($new_image, $r, $g, $b);
imagesetpixel($new_image, $j, $i, $clr);
}
}
if ($extention == 'jpeg') {
imagejpeg($new_image, $_OUTPUT['dir'], $_OPTIONS['quality']);
} elseif ($extention == 'gif') {
imagegif($new_image, $_OUTPUT['dir']);
} elseif ($extention == 'png') {
imagepng($new_image, $_OUTPUT['dir'], 0);
}
imagedestroy($new_image);
}
}
function negative($image, $output, $_OPTIONS) {
if (!empty($image)) {
if ($_OPTIONS['image_dir'] != NULL) {
$image = $_OPTIONS['image_dir'] . $image;
}
// Afmetingen orginele afbeelding ophalen
$image_size = getimagesize($image);
// Mime-type ophalen
if ($image_size['mime'] == 'image/jpeg') {
$extention = 'jpeg';
} elseif ($image_size['mime'] == 'image/gif') {
$extention = 'gif';
} elseif ($image_size['mime'] == 'image/png') {
$extention = 'png';
}
header("Content-type: " . $image_size['mime']);
if ($extention == 'jpeg') {
$im = imagecreatefromjpeg($image);
} elseif ($extention == 'gif') {
$im = imagecreatefromgif($image);
} elseif ($extention == 'png') {
$im = imagecreatefrompng($image);
}
$x = $image_size[0];
$y = $image_size[1];
$new_image = imagecreatetruecolor($x, $y);
for ($i = 0; $i < $y; $i++) {
for ($j = 0; $j < $x; $j++) {
$c = imagecolorat($im, $j, $i);
$r = ($c >> 16) & 0xFF;
$g = ($c >> 8) & 0xFF;
$b = $c & 0xFF;
$r = abs($r - 255);
$g = abs($g - 255);
$b = abs($b - 255);
$clr = imagecolorallocate($new_image, $r, $g, $b);
imagesetpixel($new_image, $j, $i, $clr);
}
}
if ($extention == 'jpeg') {
imagejpeg($new_image, $_OUTPUT['dir'], $_OPTIONS['quality']);
} elseif ($extention == 'gif') {
imagegif($new_image, $_OUTPUT['dir']);
} elseif ($extention == 'png') {
imagepng($new_image, $_OUTPUT['dir'], 0);
}
imagedestroy($new_image);
}
}
function mode($image, $color='blue', $output, $_OPTIONS) {
if (!empty($image)) {
if ($_OPTIONS['image_dir'] != NULL) {
$image = $_OPTIONS['image_dir'] . $image;
}
// Afmetingen orginele afbeelding ophalen
$image_size = getimagesize($image);
// Mime-type ophalen
if ($image_size['mime'] == 'image/jpeg') {
$extention = 'jpeg';
} elseif ($image_size['mime'] == 'image/gif') {
$extention = 'gif';
} elseif ($image_size['mime'] == 'image/png') {
$extention = 'png';
}
header("Content-type: " . $image_size['mime']);
if ($extention == 'jpeg') {
$im = imagecreatefromjpeg($image);
} elseif ($extention == 'gif') {
$im = imagecreatefromgif($image);
} elseif ($extention == 'png') {
$im = imagecreatefrompng($image);
}
$x = $image_size[0];
$y = $image_size[1];
$new_image = imagecreatetruecolor($x, $y);
for ($i = 0; $i < $y; $i++) {
for ($j = 0; $j < $x; $j++) {
$c = imagecolorat($im, $j, $i);
if ($color == 'blue') {
$r = ($c << 16) & 0xFF;
$g = ($c << 8) & 0xFF;
$b = $c & 0xFF;
} elseif ($color == 'green') {
$r = ($c << 16) & 0xFF;
$g = ($c >> 8) & 0xFF;
$b = $c & 0xFF;
} elseif ($color == 'pink') {
$r = ($c >> 16) & 0xFF;
$g = ($c << 8) & 0xFF;
$b = $c & 0xFF;
} elseif ($color == 'yellow') {
$r = ($c >> 16) & 0xFF;
$g = ($c << 8) & 0xFF;
$b = $c & 0x00;
} elseif ($color == 'red') {
$r = ($c >> 16) & 0xFF;
$g = ($c << 8) & 0x00;
$b = $c & 0x00;
} elseif ($color == 'colorless') {
$r = ($c >> 16);
$g = ($c >> 8);
$b = $c;
} elseif ($color == 'colorless2') {
$r = ($c << 16);
$g = ($c << 8);
$b = $c;
} elseif ($color == 'colorless3') {
$r = ($c << 16);
$g = ($c >> 8);
$b = $c;
} elseif ($color == 'colorless4') {
$r = ($c << 16);
$g = $c;
$b = ($c >> 8);
} elseif ($color == 'colorless5') {
$r = $c;
$g = ($c >> 8);
$b = ($c >> 16);
} elseif ($color == 'hot') {
$r = 225;
$g = ($c >> 8) & 0xFF;
$b = 0;
} elseif ($color == 'nature') {
$r = ($c >> 8) & 0xFF;
$g = 225;
$b = 0;
}
$clr = imagecolorallocate($new_image, $r, $g, $b);
imagesetpixel($new_image, $j, $i, $clr);
}
}
if ($extention == 'jpeg') {
imagejpeg($new_image, $_OUTPUT['dir'], $_OPTIONS['quality']);
} elseif ($extention == 'gif') {
imagegif($new_image, $_OUTPUT['dir']);
} elseif ($extention == 'png') {
imagepng($new_image, $_OUTPUT['dir'], 0);
}
imagedestroy($new_image);
}
}
function graystyle($image, $output, $_OPTIONS) {
if (!empty($image)) {
if ($_OPTIONS['image_dir'] != NULL) {
$image = $_OPTIONS['image_dir'] . $image;
}
// Afmetingen orginele afbeelding ophalen
$image_size = getimagesize($image);
// Mime-type ophalen
if ($image_size['mime'] == 'image/jpeg') {
$extention = 'jpeg';
} elseif ($image_size['mime'] == 'image/gif') {
$extention = 'gif';
} elseif ($image_size['mime'] == 'image/png') {
$extention = 'png';
}
header("Content-type: " . $image_size['mime']);
if ($extention == 'jpeg') {
$new_image = imagecreatefromjpeg($image);
} elseif ($extention == 'gif') {
$new_image = imagecreatefromgif($image);
} elseif ($extention == 'png') {
$new_image = imagecreatefrompng($image);
}
imagefilter($new_image, IMG_FILTER_GRAYSCALE);
if ($extention == 'jpeg') {
imagejpeg($new_image, $_OUTPUT['dir'], $_OPTIONS['quality']);
} elseif ($extention == 'gif') {
imagegif($new_image, $_OUTPUT['dir']);
} elseif ($extention == 'png') {
imagepng($new_image, $_OUTPUT['dir'], 0);
}
imagedestroy($new_image);
}
}
if (isset($_GET['thumb'])) {
thumb('Dave_grohl2.jpg', $_GET['width'], $_GET['height'], $_OPTIONS['output_dir'], $_OPTIONS);
} elseif (isset($_GET['rotate'])) {
rotate('Dave_grohl2.jpg', $_GET['rotate'], $_OPTIONS['output_dir'], $_OPTIONS);
} elseif (isset($_GET['scale'])) {
scale('Dave_grohl2.jpg', $_GET['scale'], $_OPTIONS['output_dir'], $_OPTIONS);
} elseif (isset($_GET['reverse'])) {
reverse('Dave_grohl2.jpg', 'hor', $_OPTIONS['output_dir'], $_OPTIONS);
} elseif (isset($_GET['negative'])) {
negative('Dave_grohl2.jpg', $_OPTIONS['output_dir'], $_OPTIONS);
} elseif (isset($_GET['graystyle'])) {
graystyle('Dave_grohl2.jpg', $_OPTIONS['output_dir'], $_OPTIONS);
} elseif (isset($_GET['mode'])) {
mode('Dave_grohl2.jpg', $_GET['mode'], $_OPTIONS['output_dir'], $_OPTIONS);
}
?>
Reacties
0