Activity Stream
48,167 MEMBERS
61502 ONLINE
besthostingforums On YouTube Subscribe to our Newsletter besthostingforums On Twitter besthostingforums On Facebook besthostingforums On facebook groups

Page 2 of 3 FirstFirst 123 LastLast
Results 11 to 20 of 23
  1.     
    #11
    Pure Awesomeness!
    Yeah I know m8, That one posted in the first post works with external images wbut it converts them to PNG, I want it to keep the extension as it is.



  2.   Sponsored Links

  3.     
    #12
    Member
    Does it actually cut the load though as far as I know I thought once it grabbed the images it still stored them on your server in the cache folder.

    Anyway hope you get your problem sorted.
    YAY!

  4.     
    #13
    Pure Awesomeness!
    Yes you're right, but there is no load on the server, just the images are freaking huge 50-70Kbs PNG :[ other one i was using used to make them only 5-15Kbs JPG.



  5.     
    #14
    Member
    Website's:
    crackingforum.com linkparadox.com crackz.me
    BUMP FOR YOU!


  6.     
    #15
    Pure Awesomeness!
    Ok i found this one that converts the images to jpg instead of PNG but it doesn't wrk with external images

    PHP Code: 
    <?php
    /*
        TimThumb script created by Tim McDaniels and Darren Hoyt with tweaks by Ben Gillbanks
        http://code.google.com/p/timthumb/

        MIT License: http://www.opensource.org/licenses/mit-license.php

        Paramters
        ---------
        w: width
        h: height
        zc: zoom crop (0 or 1)
        q: quality (default is 75 and max is 100)
        
        HTML example: <img src="/scripts/timthumb.php?src=/images/whatever.jpg&w=150&h=200&zc=1" alt="" />
    */

    /*
    $sizeLimits = array(
        "100x100",
        "150x150",
    );
    */

    define("CACHE_SIZE"200);        // number of files to store before clearing cache
    define("CACHE_CLEAR"5);        // maximum number of files to delete on each cache clear
    define("VERSION""1.08");        // version number (to force a cache refresh

    $imageFilters = array(
        
    "1" => array(IMG_FILTER_NEGATE0),
        
    "2" => array(IMG_FILTER_GRAYSCALE0),
        
    "3" => array(IMG_FILTER_BRIGHTNESS1),
        
    "4" => array(IMG_FILTER_CONTRAST1),
        
    "5" => array(IMG_FILTER_COLORIZE4),
        
    "6" => array(IMG_FILTER_EDGEDETECT0),
        
    "7" => array(IMG_FILTER_EMBOSS0),
        
    "8" => array(IMG_FILTER_GAUSSIAN_BLUR0),
        
    "9" => array(IMG_FILTER_SELECTIVE_BLUR0),
        
    "10" => array(IMG_FILTER_MEAN_REMOVAL0),
        
    "11" => array(IMG_FILTER_SMOOTH0),
    );

    // sort out image source
    $src get_request("src""");
    if(
    $src == "" || strlen($src) <= 3) {
        
    displayError("no image specified");
    }

    // clean params before use
    $src cleanSource($src);
    // last modified time (for caching)
    $lastModified filemtime($src);

    // get properties
    $new_width         preg_replace("/[^0-9]+/"""get_request("w"0));
    $new_height     preg_replace("/[^0-9]+/"""get_request("h"0));
    $zoom_crop         preg_replace("/[^0-9]+/"""get_request("zc"1));
    $quality         preg_replace("/[^0-9]+/"""get_request("q"80));
    $filters        get_request("f""");

    if (
    $new_width == && $new_height == 0) {
        
    $new_width 100;
        
    $new_height 100;
    }

    // set path to cache directory (default is ./cache)
    // this can be changed to a different location
    $cache_dir './cache';

    // get mime type of src
    $mime_type mime_type($src);

    // check to see if this image is in the cache already
    check_cache$cache_dir$mime_type );

    // if not in cache then clear some space and generate a new file
    cleanCache();

    ini_set('memory_limit'"30M");

    // make sure that the src is gif/jpg/png
    if(!valid_src_mime_type($mime_type)) {
        
    displayError("Invalid src mime type: " .$mime_type);
    }

    // check to see if GD function exist
    if(!function_exists('imagecreatetruecolor')) {
        
    displayError("GD Library Error: imagecreatetruecolor does not exist");
    }

    if(
    strlen($src) && file_exists($src)) {

        
    // open the existing image
        
    $image open_image($mime_type$src);
        if(
    $image === false) {
            
    displayError('Unable to open image : ' $src);
        }

        
    // Get original width and height
        
    $width imagesx($image);
        
    $height imagesy($image);
        
        
    // don't allow new width or height to be greater than the original
        
    if( $new_width $width ) {
            
    $new_width $width;
        }
        if( 
    $new_height $height ) {
            
    $new_height $height;
        }

        
    // generate new w/h if not provided
        
    if( $new_width && !$new_height ) {
            
            
    $new_height $height * ( $new_width $width );
            
        } elseif(
    $new_height && !$new_width) {
            
            
    $new_width $width * ( $new_height $height );
            
        } elseif(!
    $new_width && !$new_height) {
            
            
    $new_width $width;
            
    $new_height $height;
            
        }
        
        
    // create a new true color image
        
    $canvas imagecreatetruecolor$new_width$new_height );
        
    imagealphablending($canvasfalse);
        
    // Create a new transparent color for image
        
    $color imagecolorallocatealpha($canvas000127);
        
    // Completely fill the background of the new image with allocated color.
        
    imagefill($canvas00$color);
        
    // Restore transparency blending
        
    imagesavealpha($canvastrue);

        if( 
    $zoom_crop ) {

            
    $src_x $src_y 0;
            
    $src_w $width;
            
    $src_h $height;

            
    $cmp_x $width  $new_width;
            
    $cmp_y $height $new_height;

            
    // calculate x or y coordinate and width or height of source

            
    if ( $cmp_x $cmp_y ) {

                
    $src_w round( ( $width $cmp_x $cmp_y ) );
                
    $src_x round( ( $width - ( $width $cmp_x $cmp_y ) ) / );

            } elseif ( 
    $cmp_y $cmp_x ) {

                
    $src_h round( ( $height $cmp_y $cmp_x ) );
                
    $src_y round( ( $height - ( $height $cmp_y $cmp_x ) ) / );

            }
            
            
    imagecopyresampled$canvas$image00$src_x$src_y$new_width$new_height$src_w$src_h );

        } else {

            
    // copy and resize part of an image with resampling
            
    imagecopyresampled$canvas$image0000$new_width$new_height$width$height );

        }
        
        if (
    $filters != "") {
            
    // apply filters to image
            
    $filterList explode("|"$filters);
            foreach(
    $filterList as $fl) {
                
    $filterSettings explode(","$fl);
                if(isset(
    $imageFilters[$filterSettings[0]])) {
                
                    for(
    $i 0$i 4$i ++) {
                        if(!isset(
    $filterSettings[$i])) {
                            
    $filterSettings[$i] = null;
                        }
                    }
                    
                    switch(
    $imageFilters[$filterSettings[0]][1]) {
                    
                        case 
    1:
                        
                            
    imagefilter($canvas$imageFilters[$filterSettings[0]][0], $filterSettings[1]);
                            break;
                        
                        case 
    2:
                        
                            
    imagefilter($canvas$imageFilters[$filterSettings[0]][0], $filterSettings[1], $filterSettings[2]);
                            break;
                        
                        case 
    3:
                        
                            
    imagefilter($canvas$imageFilters[$filterSettings[0]][0], $filterSettings[1], $filterSettings[2], $filterSettings[3]);
                            break;
                        
                        default:
                        
                            
    imagefilter($canvas$imageFilters[$filterSettings[0]][0]);
                            break;
                            
                    }
                }
            }
        }
        
        
    // output image to browser based on mime type
        
    show_image($mime_type$canvas$cache_dir);
        
        
    // remove image from memory
        
    imagedestroy($canvas);
        
    } else {

        if(
    strlen($src)) {
            
    displayError("image " $src " not found");
        } else {
            
    displayError("no source specified");
        }
        
    }

    /**
     * 
     */
    function show_image($mime_type$image_resized$cache_dir) {

        global 
    $quality;

        
    // check to see if we can write to the cache directory
        
    $is_writable 0;
        
    $cache_file_name $cache_dir '/' get_cache_file();

        if(
    touch($cache_file_name)) {
            
            
    // give 666 permissions so that the developer 
            // can overwrite web server user
            
    chmod($cache_file_name0666);
            
    $is_writable 1;
            
        } else {
            
            
    $cache_file_name NULL;
            
    header('Content-type: ' $mime_type);
            
        }

        
    $quality floor($quality 0.09);

        
    imagejpeg($image_resized$cache_file_name);
        
        if(
    $is_writable) {
            
    show_cache_file($cache_dir$mime_type);
        }

        
    imagedestroy($image_resized);
        
        
    displayError("error showing image");

    }

    /**
     * 
     */
    function get_request$property$default ) {
        
        if( isset(
    $_REQUEST[$property]) ) {
        
            return 
    $_REQUEST[$property];
            
        } else {
        
            return 
    $default;
            
        }
        
    }

    /**
     * 
     */
    function open_image($mime_type$src) {

        if(
    stristr($mime_type'gif')) {
        
            
    $image imagecreatefromgif($src);
            
        } elseif(
    stristr($mime_type'jpeg')) {
        
            @
    ini_set('gd.jpeg_ignore_warning'1);
            
    $image imagecreatefromjpeg($src);
            
        } elseif( 
    stristr($mime_type'png')) {
        
            
    $image imagecreatefrompng($src);
            
        }
        
        return 
    $image;

    }

    /**
     * clean out old files from the cache
     * you can change the number of files to store and to delete per loop in the defines at the top of the code
     */
    function cleanCache() {

        
    $files glob("cache/*"GLOB_BRACE);
        
        
    $yesterday time() - (24 60 60);
        
        if (
    count($files) > 0) {
            
            
    usort($files"filemtime_compare");
            
    $i 0;
            
            if (
    count($files) > CACHE_SIZE) {
                
                foreach (
    $files as $file) {
                    
                    
    $i ++;
                    
                    if (
    $i >= CACHE_CLEAR) {
                        return;
                    }
                    
                    if (
    filemtime($file) > $yesterday) {
                        return;
                    }
                    
                    
    unlink($file);
                    
                }
                
            }
            
        }

    }

    /**
     * compare the file time of two files
     */
    function filemtime_compare($a$b) {

        return 
    filemtime($a) - filemtime($b);
        
    }

    /**
     * determine the file mime type
     */
    function mime_type($file) {

        if (
    stristr(PHP_OS'WIN')) { 
            
    $os 'WIN';
        } else { 
            
    $os PHP_OS;
        }

        
    $mime_type '';

        if (
    function_exists('mime_content_type')) {
            
    $mime_type mime_content_type($file);
        }
        
        
    // use PECL fileinfo to determine mime type
        
    if (!valid_src_mime_type($mime_type)) {
            if (
    function_exists('finfo_open')) {
                
    $finfo finfo_open(FILEINFO_MIME);
                
    $mime_type finfo_file($finfo$file);
                
    finfo_close($finfo);
            }
        }

        
    // try to determine mime type by using unix file command
        // this should not be executed on windows
        
    if (!valid_src_mime_type($mime_type) && $os != "WIN") {
            if (
    preg_match("/FREEBSD|LINUX/"$os)) {
                
    $mime_type trim(@shell_exec('file -bi "' $file '"'));
            }
        }

        
    // use file's extension to determine mime type
        
    if (!valid_src_mime_type($mime_type)) {

            
    // set defaults
            
    $mime_type 'image/png';
            
    // file details
            
    $fileDetails pathinfo($file);
            
    $ext strtolower($fileDetails["extension"]);
            
    // mime types
            
    $types = array(
                 
    'jpg'  => 'image/jpeg',
                 
    'jpeg' => 'image/jpeg',
                 
    'png'  => 'image/png',
                 
    'gif'  => 'image/gif'
             
    );
            
            if (
    strlen($ext) && strlen($types[$ext])) {
                
    $mime_type $types[$ext];
            }
            
        }
        
        return 
    $mime_type;

    }

    /**
     * 
     */
    function valid_src_mime_type($mime_type) {

        if (
    preg_match("/jpg|jpeg|gif|png/i"$mime_type)) {
            return 
    true;
        }
        
        return 
    false;

    }

    /**
     * 
     */
    function check_cache($cache_dir$mime_type) {

        
    // make sure cache dir exists
        
    if (!file_exists($cache_dir)) {
            
    // give 777 permissions so that developer can overwrite
            // files created by web server user
            
    mkdir($cache_dir);
            
    chmod($cache_dir0777);
        }

        
    show_cache_file($cache_dir$mime_type);

    }

    /**
     * 
     */
    function show_cache_file($cache_dir) {

        
    $cache_file $cache_dir '/' get_cache_file();

        if (
    file_exists($cache_file)) {
            
            
    $gmdate_mod gmdate("D, d M Y H:i:s"filemtime($cache_file));
            
            if(! 
    strstr($gmdate_mod"GMT")) {
                
    $gmdate_mod .= " GMT";
            }
            
            if (isset(
    $_SERVER["HTTP_IF_MODIFIED_SINCE"])) {
            
                
    // check for updates
                
    $if_modified_since preg_replace("/;.*$/"""$_SERVER["HTTP_IF_MODIFIED_SINCE"]);
                
                if (
    $if_modified_since == $gmdate_mod) {
                    
    header("HTTP/1.1 304 Not Modified");
                    exit;
                }

            }
            
            
    $fileSize filesize($cache_file);
            
            
    // send headers then display image
            
    header("Content-Type: image/jpeg");
            
    header("Accept-Ranges: bytes");
            
    header("Last-Modified: " $gmdate_mod);
            
    header("Content-Length: " $fileSize);
            
    header("Cache-Control: max-age=9999, must-revalidate");
            
    header("Expires: " $gmdate_mod);
            
            
    readfile($cache_file);
            
            exit;

        }
        
    }

    /**
     * 
     */
    function get_cache_file() {

        global 
    $lastModified;
        static 
    $cache_file;
        
        if(!
    $cache_file) {
            
    $cachename $_SERVER['QUERY_STRING'] . VERSION $lastModified;
            
    $cache_file md5($cachename) . '.jpg';
        }
        
        return 
    $cache_file;

    }

    /**
     * check to if the url is valid or not
     */
    function valid_extension ($ext) {

        if (
    preg_match("/jpg|jpeg|png|gif/i"$ext)) {
            return 
    TRUE;
        } else {
            return 
    FALSE;
        }
        
    }

    /**
     * tidy up the image source url
     */
    function cleanSource($src) {

        
    // remove slash from start of string
        
    if(strpos($src"/") == 0) {
            
    $src substr($src, -(strlen($src) - 1));
        }

        
    // remove http/ https/ ftp
        
    $src preg_replace("/^((ht|f)tp(s|):\/\/)/i"""$src);
        
    // remove domain name from the source url
        
    $host $_SERVER["HTTP_HOST"];
        
    $src str_replace($host""$src);
        
    $host str_replace("www."""$host);
        
    $src str_replace($host""$src);

        
    // don't allow users the ability to use '../' 
        // in order to gain access to files below document root

        // src should be specified relative to document root like:
        // src=images/img.jpg or src=/images/img.jpg
        // not like:
        // src=../images/img.jpg
        
    $src preg_replace("/\.\.+\//"""$src);

        
    //print_r($_SERVER);
        
        // get path to image on file system
        
    $src get_document_root($src) . '/' $src;    

        return 
    $src;

    }

    /**
     * 
     */
    function get_document_root ($src) {

        
    // check for unix servers
        
    if(@file_exists($_SERVER['DOCUMENT_ROOT'] . '/' $src)) {
            return 
    $_SERVER['DOCUMENT_ROOT'];
        }
        
        
    // the relative paths below are useful if timthumb is moved outside of document root
        // specifically if installed in wordpress themes like mimbo pro:
        // /wp-content/themes/mimbopro/scripts/timthumb.php
        
    $paths = array(
            
    ".",
            
    "..",
            
    "../..",
            
    "../../..",
            
    "../../../..",
            
    "../../../../.."
        
    );
        
        foreach(
    $paths as $path) {
            if(@
    file_exists($path '/' $src)) {
                return 
    $path;
            }
        }
        
        
    // special check for microsoft servers
        
    if(!isset($_SERVER['DOCUMENT_ROOT'])) {
            
    $path str_replace("/""\\"$_SERVER['ORIG_PATH_INFO']);
            
    $path str_replace($path""$_SERVER['SCRIPT_FILENAME']);
            
            if( @
    file_exists$path '/' $src ) ) {
                return 
    $path;
            }
        }    
        
        
    displayError('file not found ' $src);

    }

    /**
     * generic error message
     */
    function displayError($errorString '') {

        
    header('HTTP/1.1 400 Bad Request');
        die(
    $errorString);
        
    }
    ?>
    Some one help plox, or make it and tell me ur price



  7.     
    #16
    It begins...
    I was literally scanning my entire PC yesterday for an alternative. timThumb reminded me of an alternative that a Wordpress theme I have, uses. It's basically SO much more feature rich, easier to use/install, configure, etc. And I found it earlier today. Have a look:
    http://phpthumb.sourceforge.net/

    Yep, can work with remote, local, or database images. Can watermark your thumbnails. And of course, a huge array of all sorts of filters. Have a look.

    I'll see if I can modify timthumb to support remote images. Though am not so confident, but hey, I'll give it a shot anyway.

  8.     
    #17
    Pure Awesomeness!
    Thank a lot m8, ill check that phpthumb and see how it is, let me know if u managed to get that timthumb working with external images .



  9.     
    #18
    Pure Awesomeness!
    Edit: fixed it my self with a little confidence lol

    changed this
    Code: 
    $cache_file = md5($cachename) . '.png';
    to this
    Code: 
    $cache_file = md5($cachename) . '.jpg';



  10.     
    #19
    It begins...
    How about a difference in size(s).. does the change help?

  11.     
    #20
    Pure Awesomeness!
    Blah, this is bullshit it says its jpg on ftp but when u see it here it says PNG, size is still huge :/



Page 2 of 3 FirstFirst 123 LastLast

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. Timthumb Not Working
    By msk19994 in forum Server Management
    Replies: 4
    Last Post: 25th Oct 2012, 05:24 AM
  2. [WordPress] timthumb Problem
    By avRo in forum Web Application/Script Support
    Replies: 1
    Last Post: 23rd Dec 2011, 02:26 PM
  3. How to integrate Timthumb with wordpress
    By RT in forum Tutorials and Guides
    Replies: 20
    Last Post: 15th Sep 2011, 02:25 AM
  4. [Hiring] Someone who can install timthumb for me..
    By Ryza in forum Completed Transactions
    Replies: 8
    Last Post: 11th Jun 2011, 10:44 AM
  5. How to add TimThumb in WordPress?
    By Palooo 2009 in forum Wordpress
    Replies: 0
    Last Post: 12th Jan 2011, 04:40 PM

Tags for this Thread

BE SOCIAL