GoFuckYourself.com - Adult Webmaster Forum

GoFuckYourself.com - Adult Webmaster Forum (https://gfy.com/index.php)
-   GFY Jobs and Services Market (https://gfy.com/forumdisplay.php?f=42)
-   -   php image resizer to image cropper (https://gfy.com/showthread.php?t=1098376)

Zeiss 02-01-2013 08:50 AM

php image resizer to image cropper
 
Can you help me transofrm this? I wanna make it crop from center of image, not to resize it to fit a box. Original image must also be kept, should image regeneration be required later on.

PHP Code:

<?php if ( ! defined('ABS_PATH')) exit('ABS_PATH is not loaded. Direct access is not allowed.');

    class 
ImageResizer {

        public static function 
fromFile($imagePath) {
            return new 
ImageResizer($imagePath);
        }

        private 
$im;

        private function 
__construct($imagePath) {
            if(!
file_exists($imagePath)) throw new Exception("$imagePath does not exist!");
            if(!
is_readable($imagePath)) throw new Exception("$imagePath is not readable!");
            if(
filesize($imagePath)==0) throw new Exception("$imagePath is corrupt or broken!");

            if(
osc_use_imagick()) {
                
$this->im = new Imagick($imagePath);                
            } else {
                
$content file_get_contents($imagePath);
                
$this->im imagecreatefromstring($content);
            }

            return 
$this;
        }

        public function 
__destruct() {
            if(
osc_use_imagick()) {
                
$this->im->destroy();
            } else {
                
imagedestroy($this->im);
            }
        }

        public function 
resizeTo($width$height) {
            if(
osc_use_imagick()) {
                
$bg = new Imagick();
                
$bg->newImage($width$height'#FF7F26');
                
                
$this->im->thumbnailImage($width$heighttrue);
                
$geometry $this->im->getImageGeometry();

                
$x = ( $width $geometry['width'] ) / 2;
                
$y = ( $height $geometry['height'] ) / 2;

                
$bg->compositeImage$this->imimagick::COMPOSITE_OVER$x$y );
                
$this->im $bg;
            } else {
                
$w imagesx($this->im);
                
$h imagesy($this->im);

                if((
$w/$h)>=($width/$height)) {
                    
//$newW = $width;
                    
$newW = ($w $width)? $width $w;
                    
$newH $h * ($newW $w);
                } else {
                    
//$newH = $height;
                    
$newH = ($h $height)? $height $h;
                    
$newW $w * ($newH $h);
                }

                
$newIm imagecreatetruecolor($width,$height);//$newW, $newH);
                
imagealphablending($newImfalse);
                
$colorTransparent imagecolorallocatealpha($newIm255255255127);
                
imagefill($newIm00$colorTransparent);
                
imagesavealpha($newImtrue);
                
imagecopyresampled($newIm$this->im, (($width-$newW)/2), (($height-$newH)/2), 00$newW$newH$w$h);
                
imagedestroy($this->im);

                
$this->im $newIm;
            }
            return 
$this;
        }

        public function 
saveToFile($imagePath) {
            if(
file_exists($imagePath) && !is_writable($imagePath)) throw new Exception("$imagePath is not writable!");
            if(
osc_use_imagick()) {
                
$this->im->setImageFileName($imagePath);
                
$this->im->writeImage($imagePath);
            } else {
               
imagejpeg($this->im$imagePath);
            }
        }

        public function 
show() {
            
header('Content-Disposition: Attachment;filename=image.jpg');
            
header('Content-type: image/jpg');
            if(
osc_use_imagick()) {
            } else {
                
imagepng($this->im);
            }
        }

    }

?>


woj 02-02-2013 07:43 AM

If you want to invest a few bucks, icq: 33375924 or email me at: woj#at#wojfun#.#com

Itchy 02-02-2013 11:32 AM

http://stackoverflow.com/questions/6...rom-center-php


All times are GMT -7. The time now is 04:52 PM.

Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
©2000-, AI Media Network Inc123