Hello everybody..
After i changed my server, i get "No Thumbnail" on every image that i post, but not in pictures that i uploaded to my page..
What can i do?
SOLVED No Thumbnail After Changing Server In External Pictures
Subject: Re: No Thumbnail After Changing Server In External Pictures
Also some hosts have blocked thumbnail images that are uploaded by the upload image mod in posts... It brings up an exploit or something ... though it is not a security issue it is just the way some hosts have set up there servers...
My host was the same and after I explained exactly what was going on they changed my set up so it worked, though every new site i up they have to do it again for that site...
Hope that helps...
:mrgreen: :mrgreen:
My host was the same and after I explained exactly what was going on they changed my set up so it worked, though every new site i up they have to do it again for that site...
Hope that helps...
:mrgreen: :mrgreen:
Subject: Re: No Thumbnail After Changing Server In External Pictures
Yeah, the main directory...
I didn't delete the images... The previous images are shown perfectly, but not the new images..
@ DWho: Thanks for the answer. I think its a server problem, but there isn't a solution without talking with them? Why my uploaded images work perfectly?
---
EDIT:
I think i know what is the problem.. The problem is the function allow_url_fopen. It is disabled in byethost for free users..
I tried to use .htaccess to enable it but it didn't work.. I want to know if there is a method to download the image from the url, upload it to my forum, generate the thumbnail, and delete the original image without doing it manually..
I didn't delete the images... The previous images are shown perfectly, but not the new images..
@ DWho: Thanks for the answer. I think its a server problem, but there isn't a solution without talking with them? Why my uploaded images work perfectly?
---
EDIT:
I think i know what is the problem.. The problem is the function allow_url_fopen. It is disabled in byethost for free users..
I tried to use .htaccess to enable it but it didn't work.. I want to know if there is a method to download the image from the url, upload it to my forum, generate the thumbnail, and delete the original image without doing it manually..
Subject: Re: No Thumbnail After Changing Server In External Pictures
No body knows???
I'm trying to make a code in the image_thumbnail.php file to upload the file first to my server, with this:
But i can't get it work... Pleaseeeeeeeeeeee Help me!!!
What's the difference between the "uploader" of "upload.php" and my code?
Please help me!
I'm trying to make a code in the image_thumbnail.php file to upload the file first to my server, with this:
- $grab = curl_init();
- $tmppath = $_SERVER['DOCUMENT_ROOT'] . "/tmp/";
- curl_setopt($grab, CURLOPT_URL, $pic_fullpath);
- curl_setopt($grab, CURLOPT_HEADER, false);
- curl_setopt($grab, CURLOPT_RETURNTRANSFER, true);
- $grabbed = curl_exec($grab);
- curl_close($grab);
- $filename = strtolower(md5((rand() * time()).$_SERVER['REMOTE_ADDR']) . "." . $pic_filetype);
- $file = fopen($tmppath.$filename, 'w');
- fwrite($file, $grabbed);
- fclose($file);
- $pic_id = $tmppath . $filename;
- $pic_fullpath = $tmppath . $filename;
- $pic_fullpath = str_replace(array(' '), array('%20'), $pic_id);
- $pic_id = str_replace('http://', '', str_replace('https://', '', $pic_id));
- $archivo = fopen("texto.txt","w");
- fwrite($archivo, $pic_fullpath . " " . $pic_id . PHP_EOL);
- $pic_path[] = array();
- $pic_path = explode('/', $pic_id);
- $pic_filename = $pic_path[count($pic_path) - 1];
- $file_part = explode('.', strtolower($pic_filename));
- $pic_filetype = $file_part[count($file_part) - 1];
- fwrite($archivo, "El nombre del archivo es $pic_filename y su extension es $pic_filetype" . PHP_EOL);
- @chmod($tmppath.$filename, 0777);
But i can't get it work... Pleaseeeeeeeeeeee Help me!!!
What's the difference between the "uploader" of "upload.php" and my code?
Please help me!
Subject: Re: No Thumbnail After Changing Server In External Pictures
What about an pseudo php.ini file ???
Subject: Re: No Thumbnail After Changing Server In External Pictures
MMM How i make it? I tried using htaccess to enable allow_url_fopen, but it doesn't work...
Subject: Re: No Thumbnail After Changing Server In External Pictures
There are lot's of free hosts that don't work with Icy Phoenix in one way or another because they block certain aspects of their service. :(
And support here in my opinion should be for Icy Phoenix related problems and not server / host issues, So I recommend that you change host's until you find one that doesn't limit what they provide. :P
Danielc wrote: [View Post]
There are lot's of free hosts that don't work with Icy Phoenix in one way or another because they block certain aspects of their service. :(
And support here in my opinion should be for Icy Phoenix related problems and not server / host issues, So I recommend that you change host's until you find one that doesn't limit what they provide. :P
Subject: Re: No Thumbnail After Changing Server In External Pictures
I don't think that it's a good idea t change hosting... I use free hosting and so, i cannot take so much risks with my page, until i get a payment method to pay a paid hosting...
I understand that this isn't a problem directly with Icy Phoenix. I understand that all of you do this in your free time, without any payment. This is why i'm investigating and trying to get it working, and i'm near from the solution (i think). I was investigating a script that works in my server, i found some curl based script, i tried to "port" to Icy Phoenix, with bad results, i did some modifications to the script, so now, i think its easier to "port".. This is the result:
This can be tested here: http://www.danielc.22web.net/thumbcurl_auto.php
To generate a thumbnail just pass the parameter srcurl with the url of the image..
You can change the size of the thumbnail with the parameter maxsize (by default 400) and you can add the original size in the bottom passing the parameter showoriginalsize=1
Example: http://www.danielc.22web.net/thumbc...woriginalsize=1
Sorry for the "echos" but i used those for testing.. Now, i need help to replace it with the image_thumbnail.php code. I will try that tomorrow, but any help is well...
Thanks
I understand that this isn't a problem directly with Icy Phoenix. I understand that all of you do this in your free time, without any payment. This is why i'm investigating and trying to get it working, and i'm near from the solution (i think). I was investigating a script that works in my server, i found some curl based script, i tried to "port" to Icy Phoenix, with bad results, i did some modifications to the script, so now, i think its easier to "port".. This is the result:
<?php
///////////////////////////////////
// COPYRIGHT VOIDET
// IF YOU USE THIS DONT REMOVE THIS
// WWW.JOTLAB.COM
///////////////////////////////////
//////////////////////////////////
// Modifications By Danielc
// Now Generates the image in real
// time and adds some functions
//////////////////////////////////
$srcurl = (isset($_GET['srcurl']) ? $_GET['srcurl'] : (isset($_POST['srcurl']) ? $_POST['srcurl'] : "Sin imagen"));
$srcurl = urldecode($srcurl);
if(strlen($srcurl) > 0){
$acceptedfiletypes = array('.jpg', '.gif', '.png', '.jpeg');
$src_path[] = array();
$src_path = explode('/', $srcurl);
$src_filename = $src_path[count($src_path) - 1];
$filetype = strtolower(strrchr($srcurl, '.'));
if(in_array($filetype, $acceptedfiletypes)){
$default_max_size = 400;
$maxsize = (isset($_GET['maxsize'])) ? $_GET['maxsize'] : $default_max_size;
$maxsize = (($maxsize > 600) || ($maxsize < 30)) ? $default_max_size : $maxsize;
//ECHO "<b>DEBUG: maxsize = $maxsize </b> </br>";
$tmppath = $_SERVER['DOCUMENT_ROOT'] . '/tmp/';
$thumbspath = $_SERVER['DOCUMENT_ROOT'] . '/files/thumbs/';
$urltothumbs = 'http://danielc.22web.net/files/thumbs/';
$pic_thumbnail_prefix = 'mid_' . (($maxsize != $default_max_size) ? ($maxsize . '_') : '') . md5($srcurl);
$showoriginalsize = (isset($_GET['showoriginalsize'])) ? $_GET['showoriginalsize'] : 0;
$filename = $pic_thumbnail_prefix . '_' . $src_filename;
if(file_exists($thumbspath.$filename)){
unlink($thumbspath.$filename);
//ECHO "<b>DEBUG: Existencia de archivo previo. Eliminando.</b> </br>";
}
$grab = curl_init();
curl_setopt($grab, CURLOPT_URL, $srcurl);
curl_setopt($grab, CURLOPT_HEADER, false);
curl_setopt($grab, CURLOPT_RETURNTRANSFER, true);
$grabbed = curl_exec($grab);
curl_close($grab);
//ECHO "<b>DEBUG: Nombre de archivo = $filename</b> </br>";
$file = fopen($tmppath.$filename, 'w');
fwrite($file, $grabbed);
fclose($file);
if(file_exists($tmppath.$filename)){
//ECHO "<b>DEBUG: Archivo Subido correctamente a directorio temporal.</b> </br>";
switch ($filetype){
case '.jpg':
$srcimage = imagecreatefromjpeg($tmppath.$filename);
//header("Content-type: image/jpeg");
break;
case '.jpeg':
$srcimage = imagecreatefromjpeg($tmppath.$filename);
//header("Content-type: image/jpeg");
break;
case '.gif':
$srcimage = imagecreatefromgif($tmppath.$filename);
//header("Content-type: image/gif");
break;
case '.png':
$srcimage = imagecreatefrompng($tmppath.$filename);
//header("Content-type: image/png");
break;
default:
$srcimage = imagecreatefromjpeg($tmppath.$filename);
//header("Content-type: image/jpeg");
}
$srcimagex = imagesx($srcimage);
$srcimagey = imagesy($srcimage);
if($srcimagex > $maxsize || $srcimagey > $maxsize){
if($srcimagex > $srcimagey){
$ratio = $maxsize / $srcimagex;
} else {
$ratio = $maxsize / $srcimagey;
}
//next calculate the size of the thumbnail
$thumbwidth = $srcimagex * $ratio;
$thumbheight = $srcimagey * $ratio;
} else {
$thumbwidth = $srcimagex;
$thumbheight = $srcimagey;
}
//ECHO "<b>DEBUG: Las dimensiones calculadas de la miniatura son " . $thumbwidth . "x" . $thumbheight . "</b> </br>";
if($showoriginalsize == 0){
$thumbnail = imagecreatetruecolor($thumbwidth, $thumbheight);
//ECHO "<b>DEBUG: Showoriginalsize deshabilitado</b></br>";
} else {
//ECHO "<b>DEBUG: Showoriginalsize habilitado</b></br>";
$thumbnail = imagecreatetruecolor($thumbwidth, $thumbheight + 20);
$color = ImageColorAllocate($thumbnail, 0, 0, 0);
imagefilledrectangle($thumbnail, 0, $thumbheight, $thumbwidth, $thumbheight + 20, $color);
$color_texto = ImageColorAllocate($thumbnail, 255, 255, 255);
$texto = $srcimagex . "x" . $srcimagey;
//ECHO "<b>DEBUG: texto = $texto</b></br>";
$fuente = $_SERVER['DOCUMENT_ROOT'] . '/images/fonts/denmark.ttf';
$bounds[] = array();
$bounds = imageftbbox(10,0,$fuente, $texto);
$x = $bounds[0] + ($thumbwidth / 2) - ($bounds[4] / 2);
$y = $bounds[1] + (20 / 2) - ($bounds[5] / 2) + $thumbheight;
//ECHO "<b>DEBUG: x = $x y = $y </b></br>";
imagettftext($thumbnail, 10, 0, $x, $y, $color_texto, $fuente, $texto);
}
imagecopyresampled($thumbnail, $srcimage, 0, 0, 0, 0, $thumbwidth, $thumbheight, $srcimagex, $srcimagey);
header('Content-type: image/jpeg');
imagejpeg($thumbnail);
imagejpeg($thumbnail, $thumbspath.$filename, 75);
imagedestroy($thumbnail);
unlink($tmppath.$filename);
} else {
//ECHO "<b>DEBUG: No se ha subido correctamente el archivo.</b></br>";
}
} else {
//This file was never an image, AND WILL NEVER BE AN IMAGE!
//echo 'El archivo no es una imagen.';
}
} else {
//ECHO "Primera condicion incumplida";
}
?>
///////////////////////////////////
// COPYRIGHT VOIDET
// IF YOU USE THIS DONT REMOVE THIS
// WWW.JOTLAB.COM
///////////////////////////////////
//////////////////////////////////
// Modifications By Danielc
// Now Generates the image in real
// time and adds some functions
//////////////////////////////////
$srcurl = (isset($_GET['srcurl']) ? $_GET['srcurl'] : (isset($_POST['srcurl']) ? $_POST['srcurl'] : "Sin imagen"));
$srcurl = urldecode($srcurl);
if(strlen($srcurl) > 0){
$acceptedfiletypes = array('.jpg', '.gif', '.png', '.jpeg');
$src_path[] = array();
$src_path = explode('/', $srcurl);
$src_filename = $src_path[count($src_path) - 1];
$filetype = strtolower(strrchr($srcurl, '.'));
if(in_array($filetype, $acceptedfiletypes)){
$default_max_size = 400;
$maxsize = (isset($_GET['maxsize'])) ? $_GET['maxsize'] : $default_max_size;
$maxsize = (($maxsize > 600) || ($maxsize < 30)) ? $default_max_size : $maxsize;
//ECHO "<b>DEBUG: maxsize = $maxsize </b> </br>";
$tmppath = $_SERVER['DOCUMENT_ROOT'] . '/tmp/';
$thumbspath = $_SERVER['DOCUMENT_ROOT'] . '/files/thumbs/';
$urltothumbs = 'http://danielc.22web.net/files/thumbs/';
$pic_thumbnail_prefix = 'mid_' . (($maxsize != $default_max_size) ? ($maxsize . '_') : '') . md5($srcurl);
$showoriginalsize = (isset($_GET['showoriginalsize'])) ? $_GET['showoriginalsize'] : 0;
$filename = $pic_thumbnail_prefix . '_' . $src_filename;
if(file_exists($thumbspath.$filename)){
unlink($thumbspath.$filename);
//ECHO "<b>DEBUG: Existencia de archivo previo. Eliminando.</b> </br>";
}
$grab = curl_init();
curl_setopt($grab, CURLOPT_URL, $srcurl);
curl_setopt($grab, CURLOPT_HEADER, false);
curl_setopt($grab, CURLOPT_RETURNTRANSFER, true);
$grabbed = curl_exec($grab);
curl_close($grab);
//ECHO "<b>DEBUG: Nombre de archivo = $filename</b> </br>";
$file = fopen($tmppath.$filename, 'w');
fwrite($file, $grabbed);
fclose($file);
if(file_exists($tmppath.$filename)){
//ECHO "<b>DEBUG: Archivo Subido correctamente a directorio temporal.</b> </br>";
switch ($filetype){
case '.jpg':
$srcimage = imagecreatefromjpeg($tmppath.$filename);
//header("Content-type: image/jpeg");
break;
case '.jpeg':
$srcimage = imagecreatefromjpeg($tmppath.$filename);
//header("Content-type: image/jpeg");
break;
case '.gif':
$srcimage = imagecreatefromgif($tmppath.$filename);
//header("Content-type: image/gif");
break;
case '.png':
$srcimage = imagecreatefrompng($tmppath.$filename);
//header("Content-type: image/png");
break;
default:
$srcimage = imagecreatefromjpeg($tmppath.$filename);
//header("Content-type: image/jpeg");
}
$srcimagex = imagesx($srcimage);
$srcimagey = imagesy($srcimage);
if($srcimagex > $maxsize || $srcimagey > $maxsize){
if($srcimagex > $srcimagey){
$ratio = $maxsize / $srcimagex;
} else {
$ratio = $maxsize / $srcimagey;
}
//next calculate the size of the thumbnail
$thumbwidth = $srcimagex * $ratio;
$thumbheight = $srcimagey * $ratio;
} else {
$thumbwidth = $srcimagex;
$thumbheight = $srcimagey;
}
//ECHO "<b>DEBUG: Las dimensiones calculadas de la miniatura son " . $thumbwidth . "x" . $thumbheight . "</b> </br>";
if($showoriginalsize == 0){
$thumbnail = imagecreatetruecolor($thumbwidth, $thumbheight);
//ECHO "<b>DEBUG: Showoriginalsize deshabilitado</b></br>";
} else {
//ECHO "<b>DEBUG: Showoriginalsize habilitado</b></br>";
$thumbnail = imagecreatetruecolor($thumbwidth, $thumbheight + 20);
$color = ImageColorAllocate($thumbnail, 0, 0, 0);
imagefilledrectangle($thumbnail, 0, $thumbheight, $thumbwidth, $thumbheight + 20, $color);
$color_texto = ImageColorAllocate($thumbnail, 255, 255, 255);
$texto = $srcimagex . "x" . $srcimagey;
//ECHO "<b>DEBUG: texto = $texto</b></br>";
$fuente = $_SERVER['DOCUMENT_ROOT'] . '/images/fonts/denmark.ttf';
$bounds[] = array();
$bounds = imageftbbox(10,0,$fuente, $texto);
$x = $bounds[0] + ($thumbwidth / 2) - ($bounds[4] / 2);
$y = $bounds[1] + (20 / 2) - ($bounds[5] / 2) + $thumbheight;
//ECHO "<b>DEBUG: x = $x y = $y </b></br>";
imagettftext($thumbnail, 10, 0, $x, $y, $color_texto, $fuente, $texto);
}
imagecopyresampled($thumbnail, $srcimage, 0, 0, 0, 0, $thumbwidth, $thumbheight, $srcimagex, $srcimagey);
header('Content-type: image/jpeg');
imagejpeg($thumbnail);
imagejpeg($thumbnail, $thumbspath.$filename, 75);
imagedestroy($thumbnail);
unlink($tmppath.$filename);
} else {
//ECHO "<b>DEBUG: No se ha subido correctamente el archivo.</b></br>";
}
} else {
//This file was never an image, AND WILL NEVER BE AN IMAGE!
//echo 'El archivo no es una imagen.';
}
} else {
//ECHO "Primera condicion incumplida";
}
?>
This can be tested here: http://www.danielc.22web.net/thumbcurl_auto.php
To generate a thumbnail just pass the parameter srcurl with the url of the image..
You can change the size of the thumbnail with the parameter maxsize (by default 400) and you can add the original size in the bottom passing the parameter showoriginalsize=1
Example: http://www.danielc.22web.net/thumbc...woriginalsize=1
Sorry for the "echos" but i used those for testing.. Now, i need help to replace it with the image_thumbnail.php code. I will try that tomorrow, but any help is well...
Thanks
Subject: Re: No Thumbnail After Changing Server In External Pictures
I solved it!!!!!!!!!!!!!!!!!!!!!!!!! I modified image_thumbnail.php file with some changes in my file.
This is the solution:
¿What will you need?:
- A folder in the root of your web called tmp (you can change it in the modified file)
- A folder in the root of your web called fuentes (you can change it in the modified file)
- True type font segoeuib.ttf, in fuentes folder (you can change it in the modified file)
- Icy Phoenix :mrblue:
- These instructions:
Instructions:
This is the solution:
¿What will you need?:
- A folder in the root of your web called tmp (you can change it in the modified file)
- A folder in the root of your web called fuentes (you can change it in the modified file)
- True type font segoeuib.ttf, in fuentes folder (you can change it in the modified file)
- Icy Phoenix :mrblue:
- These instructions:
Instructions:
#
#-------------[ Begin ]-----------
#
#
#------------[ OPEN ]--------------
#
/image_thumbnail.php
#
#-------------[ FIND]--------------
#
require(ALBUM_MOD_PATH . 'album_image_class.' . PHP_EXT);
#
#-------------[ AFTER ADD ] ----------
#
//Danielc's MOD - Vars Declaration START
$tmppath = $_SERVER['DOCUMENT_ROOT'] . '/tmp/'; // You must have this dir in the root.
$thumbspath = $_SERVER['DOCUMENT_ROOT'] . '/files/thumbs/'; // The thumbs directory
$urltothumbs = 'http://www.danielc.22web.net/files/thumbs/'; // The URL to thumbs directory
//Danielc's MOD - Vars Declaration END
#
#-------------[ FIND]--------------
#
if ($image_processed == false)
{
#
#-------------[ AFTER ADD ] ----------
#
// Danielc's Mod Start
$filename = $pic_thumbnail_prefix . '_' . $pic_filename;
$grab = curl_init();
curl_setopt($grab, CURLOPT_URL, $pic_fullpath);
curl_setopt($grab, CURLOPT_HEADER, false);
curl_setopt($grab, CURLOPT_RETURNTRANSFER, true);
$grabbed = curl_exec($grab);
curl_close($grab);
//ECHO "<b>DEBUG: Nombre de archivo = $filename</b> </br>";
$file = fopen($tmppath.$filename, 'w');
fwrite($file, $grabbed);
fclose($file);
$pic_fullpath = $tmppath . $filename;
fwrite($log, "pic_fullpath = $pic_fullpath" . PHP_EOL);
$pic_local = true;
//Danielc's Mod END
#
#-------------[ FIND]--------------
#
if ($pic_width > $pic_height)
{
$thumbnail_width = $board_config['thumbnail_size'];
$thumbnail_height = $board_config['thumbnail_size'] * ($pic_height / $pic_width);
}
else
{
$thumbnail_height = $board_config['thumbnail_size'];
$thumbnail_width = $board_config['thumbnail_size'] * ($pic_width / $pic_height);
}
$Image = new ImgObj();
if ($pic_filetype == 'jpg')
{
$Image->ReadSourceFileJPG($pic_fullpath);
}
else
{
$Image->ReadSourceFile($pic_fullpath);
}
$Image->Resize($thumbnail_width, $thumbnail_height);
if( $board_config['show_pic_size_on_thumb'] == 1)
{
$dimension_string = intval($pic_width) . "x" . intval($pic_height) . "(" . intval(filesize($pic_fullpath)/1024) . "KB)";
$Image->Text($dimension_string);
}
if ($board_config['thumbnail_cache'] == true)
{
if ($pic_filetype == 'jpg')
{
$Image->SendToFileJPG($pic_thumbnail_fullpath, $album_config['thumbnail_quality']);
}
else
{
$Image->SendToFile($pic_thumbnail_fullpath, $album_config['thumbnail_quality']);
}
//$Image->SendToFile($pic_thumbnail_fullpath, $board_config['thumbnail_quality']);
//@chmod($pic_thumbnail_fullpath, 0777);
}
if ($pic_filetype == 'jpg')
{
$Image->SendToBrowserJPG($pic_title_reg, $pic_filetype, 'thumb_', '', $board_config['thumbnail_quality']);
}
else
{
$Image->SendToBrowser($pic_title_reg, $pic_filetype, 'thumb_', '', $board_config['thumbnail_quality']);
}
if ($Image == true)
{
$Image->Destroy();
exit;
}
else
{
$Image->Destroy();
header('Content-type: image/jpeg');
header('Content-Disposition: filename=thumb_' . $pic_title_reg . '.' . $pic_filetype);
readfile($images['no_thumbnail']);
exit;
}
#
#-------------[ REPLACE WITH ]--------------
#
//---------------------------------
//Danielc's CURL MOD START
//---------------------------------
$maxsize = $req_thumb_size;
$showoriginalsize = $board_config['show_pic_size_on_thumb'];
$jpgquality = $board_config['thumbnail_quality'];
$filename = $pic_thumbnail_prefix . '_' . $pic_filename;
/*if(file_exists($thumbspath.$filename)){
unlink($thumbspath.$filename);
//ECHO "<b>DEBUG: Existencia de archivo previo. Eliminando.</b> </br>";
}*/
if(file_exists($tmppath.$filename)){
//ECHO "<b>DEBUG: Archivo Subido correctamente a directorio temporal.</b> </br>";
switch ($pic_filetype){
case 'jpg':
$srcimage = imagecreatefromjpeg($tmppath.$filename);
//header("Content-type: image/jpeg");
break;
case 'jpeg':
$srcimage = imagecreatefromjpeg($tmppath.$filename);
//header("Content-type: image/jpeg");
break;
case 'gif':
$srcimage = imagecreatefromgif($tmppath.$filename);
//header("Content-type: image/gif");
break;
case 'png':
$srcimage = imagecreatefrompng($tmppath.$filename);
//header("Content-type: image/png");
break;
default:
$srcimage = imagecreatefromjpeg($tmppath.$filename);
//header("Content-type: image/jpeg");
}
$pic_width = imagesx($srcimage);
$pic_height = imagesy($srcimage);
if($pic_width > $maxsize || $pic_height > $maxsize){
if($pic_width > $pic_height){
$ratio = $maxsize / $pic_width;
} else {
$ratio = $maxsize / $pic_height;
}
//next calculate the size of the thumbnail
$thumbnail_width = $pic_width * $ratio;
$thumbnail_height = $pic_height * $ratio;
} else {
$thumbnail_width = $pic_width;
$thumbnail_height = $pic_height;
}
//ECHO "<b>DEBUG: Las dimensiones calculadas de la miniatura son " . $thumbwidth . "x" . $thumbheight . "</b> </br>";
if($showoriginalsize == 0){
$thumbnail = imagecreatetruecolor($thumbnail_width, $thumbnail_height);
//ECHO "<b>DEBUG: Showoriginalsize deshabilitado</b></br>";
} else {
//ECHO "<b>DEBUG: Showoriginalsize habilitado</b></br>";
$thumbnail = imagecreatetruecolor($thumbnail_width, $thumbnail_height + 20);
$color = ImageColorAllocate($thumbnail, 0, 0, 0);
imagefilledrectangle($thumbnail, 0, $thumbnail_height, $thumbnail_width, $thumbnail_height + 20, $color);
$color_texto = ImageColorAllocate($thumbnail, 255, 255, 255);
$peso = filesize($tmppath.$filename);
$texto = $pic_width . "x" . $pic_height . "px " . round(($peso/1024)) . " KB";
//ECHO "<b>DEBUG: texto = $texto</b></br>";
$fuente = $_SERVER['DOCUMENT_ROOT'] . '/fuentes/segoeuib.ttf';
$bounds[] = array();
$bounds = imageftbbox(10,0,$fuente, $texto);
$x = $bounds[0] + ($thumbnail_width / 2) - ($bounds[4] / 2);
$y = $bounds[1] + (20 / 2) - ($bounds[5] / 2) + $thumbnail_height;
//ECHO "<b>DEBUG: x = $x y = $y </b></br>";
imagettftext($thumbnail, 10, 0, $x, $y, $color_texto, $fuente, $texto);
}
imagecopyresampled($thumbnail, $srcimage, 0, 0, 0, 0, $thumbnail_width, $thumbnail_height, $pic_width, $pic_height);
switch ($pic_filetype) {
case "jpg":
case "jpeg":
header('Content-type: image/jpeg');
imagejpeg($thumbnail);
imagejpeg($thumbnail, $thumbspath.$filename, $jpgquality);
break;
case "gif":
header('Content-type: image/gif');
imagegif($thumbnail);
imagegif($thumbnail, $thumbspath.$filename);
break;
case "png":
header('Content-type: image/png');
imagepng($thumbnail);
imagepng($thumbnail, $thumbspath.$filename);
break;
default:
header('Content-type: image/jpeg');
imagejpeg($thumbnail);
imagejpeg($thumbnail, $thumbspath.$filename, $jpgquality);
}
@chmod($thumbspath.$filename, 0777);
imagedestroy($thumbnail);
unlink($tmppath.$filename);
}
//---------------------------------
//Danielc's CURL MOD END
//---------------------------------
#
#----------------[ SAVE ] ----------
#
#-------------[ Begin ]-----------
#
#
#------------[ OPEN ]--------------
#
/image_thumbnail.php
#
#-------------[ FIND]--------------
#
require(ALBUM_MOD_PATH . 'album_image_class.' . PHP_EXT);
#
#-------------[ AFTER ADD ] ----------
#
//Danielc's MOD - Vars Declaration START
$tmppath = $_SERVER['DOCUMENT_ROOT'] . '/tmp/'; // You must have this dir in the root.
$thumbspath = $_SERVER['DOCUMENT_ROOT'] . '/files/thumbs/'; // The thumbs directory
$urltothumbs = 'http://www.danielc.22web.net/files/thumbs/'; // The URL to thumbs directory
//Danielc's MOD - Vars Declaration END
#
#-------------[ FIND]--------------
#
if ($image_processed == false)
{
#
#-------------[ AFTER ADD ] ----------
#
// Danielc's Mod Start
$filename = $pic_thumbnail_prefix . '_' . $pic_filename;
$grab = curl_init();
curl_setopt($grab, CURLOPT_URL, $pic_fullpath);
curl_setopt($grab, CURLOPT_HEADER, false);
curl_setopt($grab, CURLOPT_RETURNTRANSFER, true);
$grabbed = curl_exec($grab);
curl_close($grab);
//ECHO "<b>DEBUG: Nombre de archivo = $filename</b> </br>";
$file = fopen($tmppath.$filename, 'w');
fwrite($file, $grabbed);
fclose($file);
$pic_fullpath = $tmppath . $filename;
fwrite($log, "pic_fullpath = $pic_fullpath" . PHP_EOL);
$pic_local = true;
//Danielc's Mod END
#
#-------------[ FIND]--------------
#
if ($pic_width > $pic_height)
{
$thumbnail_width = $board_config['thumbnail_size'];
$thumbnail_height = $board_config['thumbnail_size'] * ($pic_height / $pic_width);
}
else
{
$thumbnail_height = $board_config['thumbnail_size'];
$thumbnail_width = $board_config['thumbnail_size'] * ($pic_width / $pic_height);
}
$Image = new ImgObj();
if ($pic_filetype == 'jpg')
{
$Image->ReadSourceFileJPG($pic_fullpath);
}
else
{
$Image->ReadSourceFile($pic_fullpath);
}
$Image->Resize($thumbnail_width, $thumbnail_height);
if( $board_config['show_pic_size_on_thumb'] == 1)
{
$dimension_string = intval($pic_width) . "x" . intval($pic_height) . "(" . intval(filesize($pic_fullpath)/1024) . "KB)";
$Image->Text($dimension_string);
}
if ($board_config['thumbnail_cache'] == true)
{
if ($pic_filetype == 'jpg')
{
$Image->SendToFileJPG($pic_thumbnail_fullpath, $album_config['thumbnail_quality']);
}
else
{
$Image->SendToFile($pic_thumbnail_fullpath, $album_config['thumbnail_quality']);
}
//$Image->SendToFile($pic_thumbnail_fullpath, $board_config['thumbnail_quality']);
//@chmod($pic_thumbnail_fullpath, 0777);
}
if ($pic_filetype == 'jpg')
{
$Image->SendToBrowserJPG($pic_title_reg, $pic_filetype, 'thumb_', '', $board_config['thumbnail_quality']);
}
else
{
$Image->SendToBrowser($pic_title_reg, $pic_filetype, 'thumb_', '', $board_config['thumbnail_quality']);
}
if ($Image == true)
{
$Image->Destroy();
exit;
}
else
{
$Image->Destroy();
header('Content-type: image/jpeg');
header('Content-Disposition: filename=thumb_' . $pic_title_reg . '.' . $pic_filetype);
readfile($images['no_thumbnail']);
exit;
}
#
#-------------[ REPLACE WITH ]--------------
#
//---------------------------------
//Danielc's CURL MOD START
//---------------------------------
$maxsize = $req_thumb_size;
$showoriginalsize = $board_config['show_pic_size_on_thumb'];
$jpgquality = $board_config['thumbnail_quality'];
$filename = $pic_thumbnail_prefix . '_' . $pic_filename;
/*if(file_exists($thumbspath.$filename)){
unlink($thumbspath.$filename);
//ECHO "<b>DEBUG: Existencia de archivo previo. Eliminando.</b> </br>";
}*/
if(file_exists($tmppath.$filename)){
//ECHO "<b>DEBUG: Archivo Subido correctamente a directorio temporal.</b> </br>";
switch ($pic_filetype){
case 'jpg':
$srcimage = imagecreatefromjpeg($tmppath.$filename);
//header("Content-type: image/jpeg");
break;
case 'jpeg':
$srcimage = imagecreatefromjpeg($tmppath.$filename);
//header("Content-type: image/jpeg");
break;
case 'gif':
$srcimage = imagecreatefromgif($tmppath.$filename);
//header("Content-type: image/gif");
break;
case 'png':
$srcimage = imagecreatefrompng($tmppath.$filename);
//header("Content-type: image/png");
break;
default:
$srcimage = imagecreatefromjpeg($tmppath.$filename);
//header("Content-type: image/jpeg");
}
$pic_width = imagesx($srcimage);
$pic_height = imagesy($srcimage);
if($pic_width > $maxsize || $pic_height > $maxsize){
if($pic_width > $pic_height){
$ratio = $maxsize / $pic_width;
} else {
$ratio = $maxsize / $pic_height;
}
//next calculate the size of the thumbnail
$thumbnail_width = $pic_width * $ratio;
$thumbnail_height = $pic_height * $ratio;
} else {
$thumbnail_width = $pic_width;
$thumbnail_height = $pic_height;
}
//ECHO "<b>DEBUG: Las dimensiones calculadas de la miniatura son " . $thumbwidth . "x" . $thumbheight . "</b> </br>";
if($showoriginalsize == 0){
$thumbnail = imagecreatetruecolor($thumbnail_width, $thumbnail_height);
//ECHO "<b>DEBUG: Showoriginalsize deshabilitado</b></br>";
} else {
//ECHO "<b>DEBUG: Showoriginalsize habilitado</b></br>";
$thumbnail = imagecreatetruecolor($thumbnail_width, $thumbnail_height + 20);
$color = ImageColorAllocate($thumbnail, 0, 0, 0);
imagefilledrectangle($thumbnail, 0, $thumbnail_height, $thumbnail_width, $thumbnail_height + 20, $color);
$color_texto = ImageColorAllocate($thumbnail, 255, 255, 255);
$peso = filesize($tmppath.$filename);
$texto = $pic_width . "x" . $pic_height . "px " . round(($peso/1024)) . " KB";
//ECHO "<b>DEBUG: texto = $texto</b></br>";
$fuente = $_SERVER['DOCUMENT_ROOT'] . '/fuentes/segoeuib.ttf';
$bounds[] = array();
$bounds = imageftbbox(10,0,$fuente, $texto);
$x = $bounds[0] + ($thumbnail_width / 2) - ($bounds[4] / 2);
$y = $bounds[1] + (20 / 2) - ($bounds[5] / 2) + $thumbnail_height;
//ECHO "<b>DEBUG: x = $x y = $y </b></br>";
imagettftext($thumbnail, 10, 0, $x, $y, $color_texto, $fuente, $texto);
}
imagecopyresampled($thumbnail, $srcimage, 0, 0, 0, 0, $thumbnail_width, $thumbnail_height, $pic_width, $pic_height);
switch ($pic_filetype) {
case "jpg":
case "jpeg":
header('Content-type: image/jpeg');
imagejpeg($thumbnail);
imagejpeg($thumbnail, $thumbspath.$filename, $jpgquality);
break;
case "gif":
header('Content-type: image/gif');
imagegif($thumbnail);
imagegif($thumbnail, $thumbspath.$filename);
break;
case "png":
header('Content-type: image/png');
imagepng($thumbnail);
imagepng($thumbnail, $thumbspath.$filename);
break;
default:
header('Content-type: image/jpeg');
imagejpeg($thumbnail);
imagejpeg($thumbnail, $thumbspath.$filename, $jpgquality);
}
@chmod($thumbspath.$filename, 0777);
imagedestroy($thumbnail);
unlink($tmppath.$filename);
}
//---------------------------------
//Danielc's CURL MOD END
//---------------------------------
#
#----------------[ SAVE ] ----------
#
Subject: Re: [SOLVED] No Thumbnail After Changing Server In External Pictures
nice thanks for sharing has anyone else tested this... so we know it works out of the box
and then I will move to customisations
:mrgreen: :mrgreen:
and then I will move to customisations
:mrgreen: :mrgreen:
Subject: Re: [SOLVED] No Thumbnail After Changing Server In External Pictures
In that code, there is a problem with the local pictures..
¿What will you need?:
- A folder in the root of your web called tmp (you can change it in the modified file)
- A folder in the root of your web called fuentes (you can change it in the modified file)
- True type font segoeuib.ttf, in fuentes folder (you can change it in the modified file)
- Icy Phoenix :mrblue:
- These instructions:
Instructions:
With this, if source picture is in the server, the script will copy the picture to the temporal folder, after it generates the thumbnail and deletes it..
¿What will you need?:
- A folder in the root of your web called tmp (you can change it in the modified file)
- A folder in the root of your web called fuentes (you can change it in the modified file)
- True type font segoeuib.ttf, in fuentes folder (you can change it in the modified file)
- Icy Phoenix :mrblue:
- These instructions:
Instructions:
#
#-------------[ Begin ]-----------
#
#
#------------[ OPEN ]--------------
#
/image_thumbnail.php
#
#-------------[ FIND]--------------
#
require(ALBUM_MOD_PATH . 'album_image_class.' . PHP_EXT);
#
#-------------[ AFTER ADD ] ----------
#
//Danielc's MOD - Vars Declaration START
$tmppath = $_SERVER['DOCUMENT_ROOT'] . '/tmp/'; // You must have this dir in the root.
$thumbspath = $_SERVER['DOCUMENT_ROOT'] . '/files/thumbs/'; // The thumbs directory
$urltothumbs = 'http://www.danielc.22web.net/files/thumbs/'; // The URL to thumbs directory
//Danielc's MOD - Vars Declaration END
#
#-------------[ FIND]--------------
#
if ($image_processed == false)
{
#
#-------------[ AFTER ADD ] ----------
#
// Danielc's Mod Start
$filename = $pic_thumbnail_prefix . '_' . $pic_filename;
if ($pic_local == true){
copy($pic_fullpath, $tmppath.$filename);
} else {
$grab = curl_init();
curl_setopt($grab, CURLOPT_URL, $pic_fullpath);
curl_setopt($grab, CURLOPT_HEADER, false);
curl_setopt($grab, CURLOPT_RETURNTRANSFER, true);
$grabbed = curl_exec($grab);
curl_close($grab);
//ECHO "<b>DEBUG: Nombre de archivo = $filename</b> </br>";
$file = fopen($tmppath.$filename, 'w');
fwrite($file, $grabbed);
fclose($file);
}
$pic_fullpath = $tmppath . $filename;
$pic_local = true;
//Danielc's Mod END
#
#-------------[ FIND]--------------
#
if ($pic_width > $pic_height)
{
$thumbnail_width = $board_config['thumbnail_size'];
$thumbnail_height = $board_config['thumbnail_size'] * ($pic_height / $pic_width);
}
else
{
$thumbnail_height = $board_config['thumbnail_size'];
$thumbnail_width = $board_config['thumbnail_size'] * ($pic_width / $pic_height);
}
$Image = new ImgObj();
if ($pic_filetype == 'jpg')
{
$Image->ReadSourceFileJPG($pic_fullpath);
}
else
{
$Image->ReadSourceFile($pic_fullpath);
}
$Image->Resize($thumbnail_width, $thumbnail_height);
if( $board_config['show_pic_size_on_thumb'] == 1)
{
$dimension_string = intval($pic_width) . "x" . intval($pic_height) . "(" . intval(filesize($pic_fullpath)/1024) . "KB)";
$Image->Text($dimension_string);
}
if ($board_config['thumbnail_cache'] == true)
{
if ($pic_filetype == 'jpg')
{
$Image->SendToFileJPG($pic_thumbnail_fullpath, $album_config['thumbnail_quality']);
}
else
{
$Image->SendToFile($pic_thumbnail_fullpath, $album_config['thumbnail_quality']);
}
//$Image->SendToFile($pic_thumbnail_fullpath, $board_config['thumbnail_quality']);
//@chmod($pic_thumbnail_fullpath, 0777);
}
if ($pic_filetype == 'jpg')
{
$Image->SendToBrowserJPG($pic_title_reg, $pic_filetype, 'thumb_', '', $board_config['thumbnail_quality']);
}
else
{
$Image->SendToBrowser($pic_title_reg, $pic_filetype, 'thumb_', '', $board_config['thumbnail_quality']);
}
if ($Image == true)
{
$Image->Destroy();
exit;
}
else
{
$Image->Destroy();
header('Content-type: image/jpeg');
header('Content-Disposition: filename=thumb_' . $pic_title_reg . '.' . $pic_filetype);
readfile($images['no_thumbnail']);
exit;
}
#
#-------------[ REPLACE WITH ]--------------
#
//---------------------------------
//Danielc's CURL MOD START
//---------------------------------
$maxsize = $req_thumb_size;
$showoriginalsize = $board_config['show_pic_size_on_thumb'];
$jpgquality = $board_config['thumbnail_quality'];
$filename = $pic_thumbnail_prefix . '_' . $pic_filename;
/*if(file_exists($thumbspath.$filename)){
unlink($thumbspath.$filename);
//ECHO "<b>DEBUG: Existencia de archivo previo. Eliminando.</b> </br>";
}*/
if(file_exists($tmppath.$filename)){
//ECHO "<b>DEBUG: Archivo Subido correctamente a directorio temporal.</b> </br>";
switch ($pic_filetype){
case 'jpg':
$srcimage = imagecreatefromjpeg($tmppath.$filename);
//header("Content-type: image/jpeg");
break;
case 'jpeg':
$srcimage = imagecreatefromjpeg($tmppath.$filename);
//header("Content-type: image/jpeg");
break;
case 'gif':
$srcimage = imagecreatefromgif($tmppath.$filename);
//header("Content-type: image/gif");
break;
case 'png':
$srcimage = imagecreatefrompng($tmppath.$filename);
//header("Content-type: image/png");
break;
default:
$srcimage = imagecreatefromjpeg($tmppath.$filename);
//header("Content-type: image/jpeg");
}
$pic_width = imagesx($srcimage);
$pic_height = imagesy($srcimage);
if($pic_width > $maxsize || $pic_height > $maxsize){
if($pic_width > $pic_height){
$ratio = $maxsize / $pic_width;
} else {
$ratio = $maxsize / $pic_height;
}
//next calculate the size of the thumbnail
$thumbnail_width = $pic_width * $ratio;
$thumbnail_height = $pic_height * $ratio;
} else {
$thumbnail_width = $pic_width;
$thumbnail_height = $pic_height;
}
//ECHO "<b>DEBUG: Las dimensiones calculadas de la miniatura son " . $thumbwidth . "x" . $thumbheight . "</b> </br>";
if($showoriginalsize == 0){
$thumbnail = imagecreatetruecolor($thumbnail_width, $thumbnail_height);
//ECHO "<b>DEBUG: Showoriginalsize deshabilitado</b></br>";
} else {
//ECHO "<b>DEBUG: Showoriginalsize habilitado</b></br>";
$thumbnail = imagecreatetruecolor($thumbnail_width, $thumbnail_height + 20);
$color = ImageColorAllocate($thumbnail, 0, 0, 0);
imagefilledrectangle($thumbnail, 0, $thumbnail_height, $thumbnail_width, $thumbnail_height + 20, $color);
$color_texto = ImageColorAllocate($thumbnail, 255, 255, 255);
$peso = filesize($tmppath.$filename);
$texto = $pic_width . "x" . $pic_height . "px " . round(($peso/1024)) . " KB";
//ECHO "<b>DEBUG: texto = $texto</b></br>";
$fuente = $_SERVER['DOCUMENT_ROOT'] . '/fuentes/segoeuib.ttf';
$bounds[] = array();
$bounds = imageftbbox(10,0,$fuente, $texto);
$x = $bounds[0] + ($thumbnail_width / 2) - ($bounds[4] / 2);
$y = $bounds[1] + (20 / 2) - ($bounds[5] / 2) + $thumbnail_height;
//ECHO "<b>DEBUG: x = $x y = $y </b></br>";
imagettftext($thumbnail, 10, 0, $x, $y, $color_texto, $fuente, $texto);
}
imagecopyresampled($thumbnail, $srcimage, 0, 0, 0, 0, $thumbnail_width, $thumbnail_height, $pic_width, $pic_height);
switch ($pic_filetype) {
case "jpg":
case "jpeg":
header('Content-type: image/jpeg');
imagejpeg($thumbnail);
imagejpeg($thumbnail, $thumbspath.$filename, $jpgquality);
break;
case "gif":
header('Content-type: image/gif');
imagegif($thumbnail);
imagegif($thumbnail, $thumbspath.$filename);
break;
case "png":
header('Content-type: image/png');
imagepng($thumbnail);
imagepng($thumbnail, $thumbspath.$filename);
break;
default:
header('Content-type: image/jpeg');
imagejpeg($thumbnail);
imagejpeg($thumbnail, $thumbspath.$filename, $jpgquality);
}
@chmod($thumbspath.$filename, 0777);
imagedestroy($thumbnail);
unlink($tmppath.$filename);
}
//---------------------------------
//Danielc's CURL MOD END
//---------------------------------
#
#----------------[ SAVE ] ----------
#
#-------------[ Begin ]-----------
#
#
#------------[ OPEN ]--------------
#
/image_thumbnail.php
#
#-------------[ FIND]--------------
#
require(ALBUM_MOD_PATH . 'album_image_class.' . PHP_EXT);
#
#-------------[ AFTER ADD ] ----------
#
//Danielc's MOD - Vars Declaration START
$tmppath = $_SERVER['DOCUMENT_ROOT'] . '/tmp/'; // You must have this dir in the root.
$thumbspath = $_SERVER['DOCUMENT_ROOT'] . '/files/thumbs/'; // The thumbs directory
$urltothumbs = 'http://www.danielc.22web.net/files/thumbs/'; // The URL to thumbs directory
//Danielc's MOD - Vars Declaration END
#
#-------------[ FIND]--------------
#
if ($image_processed == false)
{
#
#-------------[ AFTER ADD ] ----------
#
// Danielc's Mod Start
$filename = $pic_thumbnail_prefix . '_' . $pic_filename;
if ($pic_local == true){
copy($pic_fullpath, $tmppath.$filename);
} else {
$grab = curl_init();
curl_setopt($grab, CURLOPT_URL, $pic_fullpath);
curl_setopt($grab, CURLOPT_HEADER, false);
curl_setopt($grab, CURLOPT_RETURNTRANSFER, true);
$grabbed = curl_exec($grab);
curl_close($grab);
//ECHO "<b>DEBUG: Nombre de archivo = $filename</b> </br>";
$file = fopen($tmppath.$filename, 'w');
fwrite($file, $grabbed);
fclose($file);
}
$pic_fullpath = $tmppath . $filename;
$pic_local = true;
//Danielc's Mod END
#
#-------------[ FIND]--------------
#
if ($pic_width > $pic_height)
{
$thumbnail_width = $board_config['thumbnail_size'];
$thumbnail_height = $board_config['thumbnail_size'] * ($pic_height / $pic_width);
}
else
{
$thumbnail_height = $board_config['thumbnail_size'];
$thumbnail_width = $board_config['thumbnail_size'] * ($pic_width / $pic_height);
}
$Image = new ImgObj();
if ($pic_filetype == 'jpg')
{
$Image->ReadSourceFileJPG($pic_fullpath);
}
else
{
$Image->ReadSourceFile($pic_fullpath);
}
$Image->Resize($thumbnail_width, $thumbnail_height);
if( $board_config['show_pic_size_on_thumb'] == 1)
{
$dimension_string = intval($pic_width) . "x" . intval($pic_height) . "(" . intval(filesize($pic_fullpath)/1024) . "KB)";
$Image->Text($dimension_string);
}
if ($board_config['thumbnail_cache'] == true)
{
if ($pic_filetype == 'jpg')
{
$Image->SendToFileJPG($pic_thumbnail_fullpath, $album_config['thumbnail_quality']);
}
else
{
$Image->SendToFile($pic_thumbnail_fullpath, $album_config['thumbnail_quality']);
}
//$Image->SendToFile($pic_thumbnail_fullpath, $board_config['thumbnail_quality']);
//@chmod($pic_thumbnail_fullpath, 0777);
}
if ($pic_filetype == 'jpg')
{
$Image->SendToBrowserJPG($pic_title_reg, $pic_filetype, 'thumb_', '', $board_config['thumbnail_quality']);
}
else
{
$Image->SendToBrowser($pic_title_reg, $pic_filetype, 'thumb_', '', $board_config['thumbnail_quality']);
}
if ($Image == true)
{
$Image->Destroy();
exit;
}
else
{
$Image->Destroy();
header('Content-type: image/jpeg');
header('Content-Disposition: filename=thumb_' . $pic_title_reg . '.' . $pic_filetype);
readfile($images['no_thumbnail']);
exit;
}
#
#-------------[ REPLACE WITH ]--------------
#
//---------------------------------
//Danielc's CURL MOD START
//---------------------------------
$maxsize = $req_thumb_size;
$showoriginalsize = $board_config['show_pic_size_on_thumb'];
$jpgquality = $board_config['thumbnail_quality'];
$filename = $pic_thumbnail_prefix . '_' . $pic_filename;
/*if(file_exists($thumbspath.$filename)){
unlink($thumbspath.$filename);
//ECHO "<b>DEBUG: Existencia de archivo previo. Eliminando.</b> </br>";
}*/
if(file_exists($tmppath.$filename)){
//ECHO "<b>DEBUG: Archivo Subido correctamente a directorio temporal.</b> </br>";
switch ($pic_filetype){
case 'jpg':
$srcimage = imagecreatefromjpeg($tmppath.$filename);
//header("Content-type: image/jpeg");
break;
case 'jpeg':
$srcimage = imagecreatefromjpeg($tmppath.$filename);
//header("Content-type: image/jpeg");
break;
case 'gif':
$srcimage = imagecreatefromgif($tmppath.$filename);
//header("Content-type: image/gif");
break;
case 'png':
$srcimage = imagecreatefrompng($tmppath.$filename);
//header("Content-type: image/png");
break;
default:
$srcimage = imagecreatefromjpeg($tmppath.$filename);
//header("Content-type: image/jpeg");
}
$pic_width = imagesx($srcimage);
$pic_height = imagesy($srcimage);
if($pic_width > $maxsize || $pic_height > $maxsize){
if($pic_width > $pic_height){
$ratio = $maxsize / $pic_width;
} else {
$ratio = $maxsize / $pic_height;
}
//next calculate the size of the thumbnail
$thumbnail_width = $pic_width * $ratio;
$thumbnail_height = $pic_height * $ratio;
} else {
$thumbnail_width = $pic_width;
$thumbnail_height = $pic_height;
}
//ECHO "<b>DEBUG: Las dimensiones calculadas de la miniatura son " . $thumbwidth . "x" . $thumbheight . "</b> </br>";
if($showoriginalsize == 0){
$thumbnail = imagecreatetruecolor($thumbnail_width, $thumbnail_height);
//ECHO "<b>DEBUG: Showoriginalsize deshabilitado</b></br>";
} else {
//ECHO "<b>DEBUG: Showoriginalsize habilitado</b></br>";
$thumbnail = imagecreatetruecolor($thumbnail_width, $thumbnail_height + 20);
$color = ImageColorAllocate($thumbnail, 0, 0, 0);
imagefilledrectangle($thumbnail, 0, $thumbnail_height, $thumbnail_width, $thumbnail_height + 20, $color);
$color_texto = ImageColorAllocate($thumbnail, 255, 255, 255);
$peso = filesize($tmppath.$filename);
$texto = $pic_width . "x" . $pic_height . "px " . round(($peso/1024)) . " KB";
//ECHO "<b>DEBUG: texto = $texto</b></br>";
$fuente = $_SERVER['DOCUMENT_ROOT'] . '/fuentes/segoeuib.ttf';
$bounds[] = array();
$bounds = imageftbbox(10,0,$fuente, $texto);
$x = $bounds[0] + ($thumbnail_width / 2) - ($bounds[4] / 2);
$y = $bounds[1] + (20 / 2) - ($bounds[5] / 2) + $thumbnail_height;
//ECHO "<b>DEBUG: x = $x y = $y </b></br>";
imagettftext($thumbnail, 10, 0, $x, $y, $color_texto, $fuente, $texto);
}
imagecopyresampled($thumbnail, $srcimage, 0, 0, 0, 0, $thumbnail_width, $thumbnail_height, $pic_width, $pic_height);
switch ($pic_filetype) {
case "jpg":
case "jpeg":
header('Content-type: image/jpeg');
imagejpeg($thumbnail);
imagejpeg($thumbnail, $thumbspath.$filename, $jpgquality);
break;
case "gif":
header('Content-type: image/gif');
imagegif($thumbnail);
imagegif($thumbnail, $thumbspath.$filename);
break;
case "png":
header('Content-type: image/png');
imagepng($thumbnail);
imagepng($thumbnail, $thumbspath.$filename);
break;
default:
header('Content-type: image/jpeg');
imagejpeg($thumbnail);
imagejpeg($thumbnail, $thumbspath.$filename, $jpgquality);
}
@chmod($thumbspath.$filename, 0777);
imagedestroy($thumbnail);
unlink($tmppath.$filename);
}
//---------------------------------
//Danielc's CURL MOD END
//---------------------------------
#
#----------------[ SAVE ] ----------
#
With this, if source picture is in the server, the script will copy the picture to the temporal folder, after it generates the thumbnail and deletes it..
Page 1 of 1
You cannot post new topicsYou cannot reply to topics
You cannot edit your posts
You cannot delete your posts
You cannot vote in polls
You cannot attach files
You can download files
You cannot post calendar events
This is a "Lo-Fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by Icy Phoenix based on phpBB
Generation Time: 0.7766s (PHP: 3% SQL: 97%)
SQL queries: 31 - Debug Off - GZIP Enabled