<?php
###############################################################
# Thumbnail Image Generator 1.23
###############################################################
# Visit http://www.zubrag.com/scripts/ for updates
###############################################################
// REQUIREMENTS:
// PHP 4.0.6 and GD 2.0.1 or later
// May not work with GIFs if GD2 library installed on your server
// does not support GIF functions in full
// Parameters:
// src - path to source image
// dest - path to thumb (where to save it)
// x - max width
// y - max height
// q - quality (applicable only to JPG, 1 to 100, 100 - best)
// t - thumb type. "-1" - same as source, 1 = GIF, 2 = JPG, 3 = PNG
// f - save to file (1) or output to browser (0).
// Sample usage:
// 1. save thumb on server
// http://www.zubrag.com/thumb.php?src=test.jpg&dest=thumb.jpg&x=100&y=50
// 2. output thumb to browser
// http://www.zubrag.com/thumb.php?src=test.jpg&x=50&y=50&f=0
// Below are default values (if parameter is not passed)
// save to file (true) or output to browser (false)
$save_to_file = true;
// quality
$image_quality = 100;
// resulting image type (1 = GIF, 2 = JPG, 3 = PNG)
// enter code of the image type if you want override it
// or set it to -1 to determine automatically
$image_type = -1;
// maximum thumb side size
$max_x = 100;
$max_y = 100;
// Folder where source images are stored (thumbnails will be generated from these images).
// MUST end with slash.
//$images_folder = '/home/images/';
// Folder to save thumbnails, full path from the root folder, MUST end with slash.
// Only needed if you save generated thumbnails on the server.
// Sample for windows: c:/wwwroot/thumbs/
// Sample for unix/linux: /home/site.com/htdocs/thumbs/
//$thumbs_folder = '/home/thumbs/';
///////////////////////////////////////////////////
/////////////// DO NOT EDIT BELOW
///////////////////////////////////////////////////
$to_name = '';
if (isset($_REQUEST['f'])) {
$save_to_file = intval($_REQUEST['f']) == 1;
}
if (isset($_REQUEST['src'])) {
$from_name = urldecode($_REQUEST['src']);
}
else {
die("Source file name must be specified.");
}
if (isset($_REQUEST['dest'])) {
$to_name = urldecode($_REQUEST['dest']);
}
else if ($save_to_file) {
die("Thumbnail file name must be specified.");
}
if (isset($_REQUEST['q'])) {
$image_quality = intval($_REQUEST['q']);
}
if (isset($_REQUEST['t'])) {
$image_type = intval($_REQUEST['t']);
}
if (isset($_REQUEST['x'])) {
$max_x = intval($_REQUEST['x']);
}
if (isset($_REQUEST['y'])) {
$max_y = intval($_REQUEST['y']);
}
// Allocate all necessary memory for the image.
// Special thanks to Alecos for providing the code.
ini_set('memory_limit', '-1');
function SaveImage($type, $im, $filename, $quality, $to_file = true) {
$res = null;
// ImageGIF is not included into some GD2 releases, so it might not work
// output png if gifs are not supported
if(!function_exists('imagegif')) $type = 3;
switch ($type) {
case 1:
if ($to_file) {
$res = ImageGIF($im,$filename);
}
else {
header("Content-type: image/gif");
$res = ImageGIF($im);
}
break;
case 2:
if ($to_file) {
$res = ImageJPEG($im,$filename,$quality);
}
else {
header("Content-type: image/jpeg");
$res = ImageJPEG($im,'',$quality);
}
break;
case 3:
if ($to_file) {
$res = ImagePNG($im,$filename);
}
else {
header("Content-type: image/png");
$res = ImagePNG($im,'',$quality);
}
break;
}
return $res;
}
function ImageCreateFromType($type,$filename) {
$im = null;
switch ($type) {
case 1:
$im = ImageCreateFromGif($filename);
break;
case 2:
$im = ImageCreateFromJpeg($filename);
break;
case 3:
$im = ImageCreateFromPNG($filename);
break;
}
return $im;
}
// generate thumb from image and save it
function GenerateThumbFile($from_name, $to_name, $max_x, $max_y) {
global $save_to_file, $image_type, $image_quality;
// if src is URL then download file first
$temp = false;
if (substr($from_name,0,7) == 'http://') {
$tmpfname = tempnam("tmp/", "TmP-");
$temp = @fopen($tmpfname, "w");
if ($temp) {
@fwrite($temp, @file_get_contents($from_name)) or die("Cannot download image");
@fclose($temp);
$from_name = $tmpfname;
}
else {
die("Cannot create temp file");
}
}
// get source image size (width/height/type)
// orig_img_type 1 = GIF, 2 = JPG, 3 = PNG
list($orig_x, $orig_y, $orig_img_type, $img_sizes) = GetImageSize($from_name);
// should we override thumb image type?
$image_type = ($image_type != -1 ? $image_type : $orig_img_type);
// check for allowed image types
if ($orig_img_type < 1 or $orig_img_type > 3) die("Image type not supported");
if ($orig_x > $max_x or $orig_y > $max_y) {
// resize
$per_x = $orig_x / $max_x;
$per_y = $orig_y / $max_y;
if ($per_y > $per_x) {
$max_x = $orig_x / $per_y;
}
else {
$max_y = $orig_y / $per_x;
}
$max_x = $orig_x;
$max_y = $orig_y;
}
else {
// keep original sizes, i.e. just copy
if ($save_to_file) {
@copy($from_name, $to_name);
}
else {
switch ($image_type) {
case 1:
header("Content-type: image/gif");
readfile($from_name);
break;
case 2:
header("Content-type: image/jpeg");
readfile($from_name);
break;
case 3:
header("Content-type: image/png");
readfile($from_name);
break;
}
}
return;
}
if ($image_type == 1) {
// should use this function for gifs (gifs are palette images)
$ni = imagecreate($max_x, $max_y);
}
else {
// Create a new true color image
$ni = ImageCreateTrueColor($max_x,$max_y);
}
// Fill image with white background (255,255,255)
$white = imagecolorallocate($ni, 255, 255, 255);
imagefilledrectangle( $ni, 0, 0, $max_x, $max_y, $white);
// Create a new image from source file
$im = ImageCreateFromType($orig_img_type,$from_name);
// Copy the palette from one image to another
imagepalettecopy($ni,$im);
// Copy and resize part of an image with resampling
imagecopyresampled(
$ni, $im, // destination, source
0, 0, 0, 0, // dstX, dstY, srcX, srcY
$max_x, $max_y, // dstW, dstH
$orig_x, $orig_y); // srcW, srcH
// save thumb file
SaveImage($image_type, $ni, $to_name, $image_quality, $save_to_file);
if($temp) {
unlink($tmpfname); // this removes the file
}
}
// generate
GenerateThumbFile($images_folder . $from_name, $thumbs_folder. $to_name, $max_x, $max_y);
?>
<?
exit;
function remote_image($urlstr){
$url = parse_url($urlstr);
$domain = str_replace("www.","",$url[host]);
$ext = substr($urlstr,strrpos($urlstr,".") + 1);
$string = "";
$res = fsockopen("$domain", 80, $strErrorNo, $strErrStr, 2);
if($res){
$headerstr = "GET $urlstr HTTP/1.1\r\n";
$headerstr.= "Host:$domain:80\r\n";
$headerstr.= "\r\n";
fputs($res, $headerstr);
while (!feof($res)){
$string.= fgets($res, 1024);
}
fclose($res);
}
if($ext == "gif")
return substr($string,strpos($string,"GIF89a"));
elseif($ext == "jpg" || $ext == "jpeg")
return substr($string,strpos($string,"image/jpeg") + 14);
}
function image_save($file,$string){
$fp = @fopen ($file,'w');
if(!$fp) echo $file;
fwrite ($fp,$string);
fclose ($fp);
}
$col[14] = "http://image.gmarket.co.kr/service_image/2007/05/03/Admin_upload200753_165837.GIF";
$file1 = remote_image($col[14]);
if($file1 && strpos($file1,"Not Found") < 1){
$file_name = substr($col[14],strrpos($col[14],"/")+1);
$file_first = substr($file_name,0,strrpos($file_name,"."));
$file_last = substr($file_name,strrpos($file_name,".") + 1);
$file_newname1 = "$file_first" . rand(100,999) . ".$file_last";
image_save("$DOCUMENT_ROOT/a/$file_newname1",$file1);
}
?>
<?
exit;?>