• 06-02-2017, 14:05:03
    #1
    Üyeliği durduruldu
    <?php
    
    
    // Defines
    define("RESIZE_STRETCH"	, "stretch");
    define("RESIZE_FIT"		, "fit");
    define("RESIZE_CROP"	, "crop");
    define("POSITION_TOP"	, "top");
    define("POSITION_CENTER", "center");
    define("POSITION_BOTTOM", "bottom");
    define("POSITION_LEFT"	, "left");
    define("POSITION_RIGHT"	, "right");
    
    // Script is directly called
    if(isset($_GET['src']) && (isset($_GET['w']) || isset($_GET['h']) || isset($_GET['m']) || isset($_GET['f']) || isset($_GET['q']))){
    	$ImageProcessor = new ImageProcessor(true);
    	$ImageProcessor->Load($_GET['src'], true);
    	$ImageProcessor->EnableCache("imagecache/", 3000);
    
    	$width = isset($_GET['w']) ? $_GET['w'] : null;
    	$height = isset($_GET['h']) ? $_GET['h'] : null;
    
    	$mode = RESIZE_STRETCH;
    	if(isset($_GET['mode'])){
    		switch($_GET['mode']){
    			case "stretch":
    				$mode = RESIZE_STRETCH;
    				break;
    			case "fit":
    				$mode = RESIZE_FIT;
    				break;
    			case "crop":
    				$mode = RESIZE_CROP;
    				break;
    		}
    	}
    
    	if(isset($_GET['m'])){
    		$ImageProcessor->Watermark($_GET['m']);
    	}
    
    	if(isset($_GET['w']) || isset($_GET['h'])){
    		$ImageProcessor->Resize($width, $height, $mode);
    	}
    
    	if(isset($_GET['f']) && $_GET['f'] == "bw"){
    		$ImageProcessor->FilterGray();
    	}
    
    
    
    	$quality = isset($_GET['q']) ? $_GET['q'] : 80;
    	$ImageProcessor->Parse($quality);
    }
    
    class ImageProcessor
    {
    	/**
    	 * Origninal image path
    	 *
    	 * @var string
    	 */
    	private $_image_path;
    
    	/**
    	 * Image name
    	 *
    	 * @var string
    	 */
    	protected $_image_name;
    
    	/**
    	 * Image type
    	 *
    	 * @var int
    	 */
    	private $_image_type;
    
    	/**
    	 * Image mime type
    	 *
    	 * @var string
    	 */
    	protected $_mime;
    
    	/**
    	 * Image file extension
    	 *
    	 * @var string
    	 */
    	protected $_extension;
    
    	/**
    	 * Is it a direct url call?
    	 *
    	 * @var bool
    	 */
    	private $_direct_call = false;
    
    	/**
    	 * Old image height
    	 *
    	 * @var int
    	 */
    	private $_old_height;
    
    	/**
    	 * Old image width
    	 *
    	 * @var int
    	 */
    	private $_old_width;
    
    	/**
    	 * New image height
    	 *
    	 * @var int
    	 */
    	private $_new_height;
    
    	/**
    	 * New image width
    	 *
    	 * @var int
    	 */
    	private $_new_width;
    
    	/**
    	 * Resize mode
    	 *
    	 * @var defined
    	 */
    	private $_resize_mode;
    
    	/**
    	 * Image resource
    	 *
    	 * @var Resource
    	 */
    	private $_image_resource;
    
    	/**
    	 * Cache folder
    	 *
    	 * @var string
    	 */
    	private $_cache_folder;
    
    	/**
    	 * Cache time to live
    	 *
    	 * @var int
    	 */
    	private $_cache_ttl;
    
    	/**
    	 * Cache on
    	 *
    	 * @var bool
    	 */
    	private $_cache = false;
    
    	/**
    	 * Cache skip
    	 *
    	 * @var bool
    	 */
    	private $_cache_skip = false;
    
    	/**
    	 * Cleanup url
    	 *
    	 * @access private
    	 * @param string $image
    	 * @return string
    	 */
    	private function cleanUrl($image){
    		$cimage = str_replace("\\", "/", $image);
    		return $cimage;
    	}
    
    	/**
    	 * Show error
    	 *
    	 * @access private
    	 * @param string $message
    	 * @return void
    	 */
    	private function showError($message=""){
    		if($this->_direct_call){
    			header('HTTP/1.1 400 Bad Request');
    			die($message);
    		}else{
    			trigger_error($message, E_USER_WARNING);
    		}
    	}
    
    	/**
    	 * Get image resource
    	 *
    	 * @access private
    	 * @param string $image
    	 * @param string $extension
    	 * @return resource
    	 */
    	private function GetImageResource($image, $extension){
    		switch($extension){
    			case "jpeg":
    			case "jpg":
    				@ini_set('gd.jpeg_ignore_warning', 1);
    				$resource = imagecreatefromjpeg($image);
    				break;
    			case "gif":
    				$resource = imagecreatefromgif($image);
    				break;
    			case "png":
    				$resource = imagecreatefrompng($image);
    				break;
    		}
    		return $resource;
    	}
    
    	/**
    	 * Save image to cache folder
    	 *
    	 * @access private
    	 * @return void
    	 */
    	private function cacheImage($name, $content){
    
    		// Write content file
    		$path = $this->_cache_folder . $name;
    		$fh = fopen($path, 'w') or die("can't open file");
    		fwrite($fh, $content);
    		fclose($fh);
    	}
    
    	/**
    	 * Get an image from cache
    	 *
    	 * @access public
    	 * @param string $name
    	 * @return void
    	 */
    	private function cachedImage($name){
    		$file = $this->_cache_folder . $name;
    		$fh = fopen($file, 'r');
    		$content = fread($fh,  filesize($file));
    		fclose($fh);
    		return $content;
    	}
    
    	/**
    	 * Get name of the cache file
    	 *
    	 * @access private
    	 * @return string
    	 */
    	private function generateCacheName(){
    		$get = implode("-", $_GET);
    		return md5($this->_resize_mode . $this->_image_path . $this->_old_width . $this->_old_height . $this->_new_width . $this->_new_height . $get) . "." . $this->_extension;
    	}
    
    	/**
    	 * Check if a cache file is expired
    	 *
    	 * @access private
    	 * @return bool
    	 */
    	private function cacheExpired(){
    		$path = $this->_cache_folder . $this->generateCacheName();
    		if(file_exists($path)){
    			$filetime = filemtime($path);
    			return $filetime < (time() - $this->_cache_ttl);
    		}else{
    			return true;
    		}
    	}
    
    	/**
    	 * Merges to layers for watermark
    	 * but keeps a clean images when using 24bit png
    	 *
    	 * @return void
    	 */
    	private function imagecopymergeAlpha($dst_im, $src_im, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h, $pct){
    		if(!isset($pct)){
    			return false;
    		}
    		$pct /= 100;
    		// Get image width and height
    		$w = imagesx( $src_im );
    		$h = imagesy( $src_im );
    		$marge_right = round(imagesx($dst_im)/2)-round(imagesx($src_im)/2);
    		$marge_bottom = round(imagesy($dst_im)/2)-round(imagesy($src_im)/2);
    
    
    		// Turn alpha blending off
    		imagealphablending( $src_im, false );
    		// Find the most opaque pixel in the image (the one with the smallest alpha value)
    		$minalpha = 10;
    		for( $x = 0; $x < $w; $x++ )
    		for( $y = 0; $y < $h; $y++ ){
    			$alpha = ( imagecolorat( $src_im, $x, $y ) >> 24 ) & 0xFF;
    			if( $alpha < $minalpha ){
    				$minalpha = $alpha;
    			}
    		}
    		//loop through image pixels and modify alpha for each
    		for( $x = 0; $x < $w; $x++ ){
    			for( $y = 0; $y < $h; $y++ ){
    				//get current alpha value (represents the TANSPARENCY!)
    				$colorxy = imagecolorat( $src_im, $x, $y );
    				$alpha = ( $colorxy >> 24 ) & 0xFF;
    				//calculate new alpha
    				if( $minalpha !== 127 ){
    					$alpha = 127 + 127 * $pct * ( $alpha - 127 ) / ( 127 - $minalpha );
    				} else {
    					$alpha += 127 * $pct;
    				}
    				//get the color index with new alpha
    				$alphacolorxy = imagecolorallocatealpha( $src_im, ( $colorxy >> 16 ) & 0xFF, ( $colorxy >> 8 ) & 0xFF, $colorxy & 0xFF, $alpha );
    				//set pixel with the new color + opacity
    				if( !imagesetpixel( $src_im, $x, $y, $alphacolorxy ) ){
    					return false;
    				}
    			}
    		}
    		// The image copy
    		imagecopy($dst_im, $src_im, imagesx($dst_im)-$w-$marge_right, imagesy($dst_im)-$h-$marge_bottom, $src_x, $src_y, $src_w, $src_h);
    	}
    
    	/**
    	 * Get the extension name of a file
    	 *
    	 * @param string $file
    	 * @return string
    	 */
    	private function getExtension($file){
    		$parts = explode(".", $file);
    		return strtolower(end($parts));
    	}
    
    	/**
    	 * Lazy load the image resource
    	 * needed for the caching to work
    	 *
    	 * @return void
    	 */
    	private function lazyLoad(){
    		if(empty($this->_image_resource)){
    			if($this->_cache && !$this->cacheExpired()){
    				$this->_cache_skip = true;
    				return;
    			}
    			$resource = $this->GetImageResource($this->_image_path, $this->_extension);
    			$this->_image_resource = $resource;
    		}
    	}
    
    	/**
    	 * Constructor
    	 *
    	 * @access public
    	 * @param bool $direct_call
    	 * @return void
    	 */
    	public function __construct($direct_call=false){
    
    		 //Check if GD extension is loaded
    	    if (!extension_loaded('gd') && !extension_loaded('gd2')) {
    	        $this->showError("GD is not loaded");
    	    }
    
    		$this->_direct_call = $direct_call;
    	}
    
    	/**
    	 * Resize
    	 *
    	 * @param int $width
    	 * @param int $height
    	 * @param define $mode
    	 * @param bool $auto_orientation houd rekening met orientatie wanneer er een resize gebeurt
    	 */
    	public function Resize($width=100, $height=100, $mode=RESIZE_STRETCH, $auto_orientation=false){
    
    		// Validate resize mode
    		$valid_modes = array("stretch", "fit", "crop");
    		if(in_array($mode, $valid_modes)){
    			$this->_resize_mode = $mode;
    		}else{
    			$this->showError("The resize mode '" . $mode . "' does not exists.");
    		}
    
    		// Aspect ratio resize based on width
    		if(is_numeric($width) && !is_numeric($height)){
    			$ratio = $this->_old_width / $width;
    			$height = ceil($this->_old_height / $ratio);
    		}
    
    		// Aspect ratio resize based on height
    		if(is_numeric($height) && !is_numeric($width)){
    			$ratio = $this->_old_height / $height;
    			$width = ceil($this->_old_width / $ratio);
    		}
    
    		// Mode calculations
    	    switch($mode){
    	    	case "stretch":
    	    		$dst_x = 0;
    	    		$dst_y = 0;
    	    		$src_x = 0;
    	    		$src_y = 0;
    	    		$dst_w = $width;
    	    		$dst_h = $height;
    	    		$src_w = $this->_old_width;
    	    		$src_h = $this->_old_height;
    	    		break;
    	    	case "fit":
    	    		$dst_x = 0;
    	    		$dst_y = 0;
    	    		$src_x = 0;
    	    		$src_y = 0;
    	    		$dst_w = ($this->_old_width > $this->_old_height) ? $this->_old_width : $width;
    	    		$dst_h = ($this->_old_height > $this->_old_width) ? $this->_old_height : $height;
    	    		$src_w = $this->_old_width;
    	    		$src_h = $this->_old_height;
    	    		if($dst_w == $this->_old_width){
    	    			$ratio = $dst_h/$this->_old_height;
    	    			$dst_w = floor($dst_w * $ratio);
    	    		}
    	    		if($dst_h == $this->_old_height){
    	    			$ratio = $dst_w/$this->_old_width;
    	    			$dst_h = floor($dst_h * $ratio);
    	    		}
    
    	    		$width = $width > $dst_w ? $dst_w : $width;
    	    		$height = $height > $dst_h ? $dst_h : $height;
    	    		break;
    	    	case "crop":
    	    		$width = $width > $this->_old_width ? $this->_old_width : $width;
    	    		$height = $height > $this->_old_height ? $this->_old_height : $height;
    	    		$dst_x = 0;
    	    		$dst_y = 0;
    	    		$calc_x = ceil($this->_old_width/2) - floor($width / 2);
    	    		$src_x = $calc_x > 0 ? $calc_x : 0;
    	    		$calc_y = ceil($this->_old_height/2) - floor($height / 2);
    	    		$src_y = $calc_y > 0 ? $calc_y : 0;
    	    		$dst_w = $this->_old_width;
    	    		$dst_h = $this->_old_height;
    	    		$src_w = $this->_old_width;
    	    		$src_h = $this->_old_height;
    	    		break;
    	    }
    
    	    // Set news size vars because these are used for the
    	    // cache name generation
    	    $this->_new_width = $width;
    	    $this->_new_height = $height;
    
    		$this->_old_width = $width;
    		$this->_old_height = $height;
    
    		// Lazy load for the directurl cache to work
    		$this->lazyLoad();
    		if($this->_cache_skip) return true;
    
    		// Create canvas for the new image
    		$new_image = imagecreatetruecolor($width, $height);
    
    		 // Check if this image is PNG or GIF to preserve its transparency
    	    if(($this->_image_type == 1) || ($this->_image_type == 3))
    	    {
    	        imagealphablending($new_image, false);
    	        imagesavealpha($new_image,true);
    	        $transparent = imagecolorallocatealpha($new_image, 255, 255, 255, 127);
    	        imagefilledrectangle($new_image, 0, 0, $width, $height, $transparent);
    	    }
    
    		imagecopyresampled($new_image, $this->_image_resource, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h);
    
    		// Apply transparency to resized gif images
    		if($this->_extension == "gif"){
    			$trnprt_indx = imagecolortransparent($resource);
          		if ($trnprt_indx >= 0) {
           			$trnprt_color    = imagecolorsforindex($this->_image_resource, $trnprt_indx);
            		$trnprt_indx    = imagecolorallocate($new_image, $trnprt_color['red'], $trnprt_color['green'], $trnprt_color['blue']);
            		imagefill($new_image, 0, 0, $trnprt_indx);
           			imagecolortransparent($new_image, $trnprt_indx);
    			}
    		}
    
    		$this->_image_resource = $new_image;
    	}
    
    	/**
    	 * Rotate an image
    	 *
    	 * @access public
    	 * @param int $degrees
    	 * @return void
    	 */
    	public function Rotate($degrees=180){
    		$this->lazyLoad();
    		if($this->_cache_skip) return true;
    		$this->_image_resource = imagerotate($this->_image_resource, $degrees, 0);
    	}
    
    	/**
    	 * Add watermark
    	 *
    	 * To use the left right bottom top center parameters you must first d
    	 *
    	 * @access public
    	 * @param string $image
    	 * @param define $horizontal
    	 * @param define $vertical
    	 * @return void
    	 */
    	public function Watermark($image, $horizontal=POSITION_RIGHT, $vertical=POSITION_BOTTOM){
    
    		// Lazy load
    		$this->lazyLoad();
    		if($this->_cache_skip) return;
    
    		// Get extension
    		$extension = $this->getExtension($image);
    
    		// Image info
    		list($width, $height, $type) = getimagesize($image);
    
    		// Get image resource
    		$watermark = $this->GetImageResource($image, $extension);
    
    		// Resource width and height
    		$image_width = imagesx($this->_image_resource);
    		$image_height = imagesy($this->_image_resource);
    
    		// Calculate positions
    		$position_x = $horizontal;
    		$position_y = $vertical;
    		switch($position_x){
    			case "left":
    				$position_x = 0;
    				break;
    			case "center":
    				$position_x = ceil($image_width/2) - floor($width/2);
    				break;
    			case "right":
    				$position_x = $image_width - $width;
    				break;
    		}
    		switch($position_y){
    			case "top":
    				$position_y = 0;
    				break;
    			case "center":
    				$position_y = ceil($image_height/2) - floor($height/2);
    				break;
    			case "bottom":
    				$position_y = $image_height - $height;
    				break;
    		}
    
    		$extension = $this->getExtension($image);
    		if($extension == "png"){
    			$this->imagecopymergeAlpha($this->_image_resource, $watermark, $position_x, $position_y, 0, 0, $width, $height, 100);
    		}else{
    			imagecopymerge($this->_image_resource, $watermark, $position_x, $position_y, 0, 0, $width, $height, 100);
    		}
    
    		// Destroy watermark
    		imagedestroy($watermark);
    	}
    
    	/**
    	 * Create image resource from path or url
    	 *
    	 * @access public
    	 * @param string $location
    	 * @param bool $lazy_load
    	 * @return
    	 */
    	public function Load($image,$lazy_load=false){
    
    		// Cleanup image url
    		$image = $this->cleanUrl($image);
    
    		// Get mime type of the image
    		$extension = $this->getExtension($image);
    
    		$mimes = array(
    			'jpeg' => 'image/jpeg',
     			'jpg'  => 'image/jpeg',
     			'gif'  => 'image/gif',
     			'png'  => 'image/png'
     		);
    
     		// Check if it is a valid image
     		if(isset($mimes[$extension]) && ((!strstr($image, "http://") && file_exists($image)) || strstr($image, "http://")) ){
    
    			// Urlencode if http
    			if(strstr($image, "http://")){
    				$image = str_replace(array('http%3A%2F%2F', '%2F'), array('http://', '/'), urlencode($image));
    			}
    
     			$this->_extension = $extension;
     			$this->_mime = $mimes[$extension];
     			$this->_image_path = $image;
     			$parts = explode("/", $image);
     			$this->_image_name = str_replace("." . $this->_extension, "", end($parts));
    
     			// Get image size
     			list($width, $height, $type) = getimagesize($image);
     			$this->_old_width = $width;
     			$this->_old_height = $height;
     			$this->_image_type = $type;
     		}else{
     			$this->showError("Wrong image type or file does not exists.");
     		}
     		if(!$lazy_load){
    			$resource = $this->GetImageResource($image, $extension);
    			$this->_image_resource = $resource;
     		}
    
    	}
    
    	/**
    	 * Save image to computer
    	 *
    	 * @access public
    	 * @param string $destination
    	 * @return void
    	 */
    	public function Save($destination, $quality=80){
    		if($this->_extension == "png" || $this->_extension == "gif"){
    			imagesavealpha($this->_image_resource, true);
    		}
    
    		switch ($this->_extension) {
    	        case "jpg": imagejpeg($this->_image_resource,$destination, $quality);  	break;
    	        case "jpeg": imagejpeg($this->_image_resource,$destination, $quality);  	break;
    	        case "gif": imagegif($this->_image_resource,$destination); 		break;
    	        case "png": imagepng($this->_image_resource,$destination); 		break;
    	        default: $this->showError('Failed to save image!');  			break;
    	    }
    
    	}
    
    	/**
    	 * Print image to screen
    	 *
    	 * @access public
    	 * @return void
    	 */
    	public function Parse($quality=80){
    		$name = $this->generateCacheName();
    		$content = "";
    		if(!$this->_cache || ($this->_cache && $this->cacheExpired())){
    			ob_start();
    			header ("Content-type: " . $this->_mime);
    
    			if($this->_extension == "png" || $this->_extension == "gif"){
    				imagesavealpha($this->_image_resource, true);
    			}
    
    			switch ($this->_extension) {
    		        case "jpg": imagejpeg($this->_image_resource, "", $quality);  	break;
    		        case "jpeg": imagejpeg($this->_image_resource, "", $quality);  	break;
    		        case "gif": imagegif($this->_image_resource); 	break;
    		        case "png": imagepng($this->_image_resource); 	break;
    		        default: $this->showError('Failed to save image!');  			break;
    		    }
    
    		    $content = ob_get_contents();
    			ob_end_clean();
    		}else{
    			header ("Content-type: " . $this->_mime);
    			echo $this->cachedImage($name);
    			exit();
    		}
    
    		// Save image content
    		if(!empty($content) && $this->_cache){
    			$this->cacheImage($name, $content);
    		}
    
    		// Destroy image
    		$this->Destroy();
    
    		echo $content;
    		exit();
    	}
    
    	/**
    	 * Destroy resources
    	 *
    	 * @access public
    	 * @return void
    	 */
    	public function Destroy(){
    		imagedestroy($this->_image_resource);
    	}
    
    	/**
    	 * Filter: Negative effect
    	 *
    	 * @access public
    	 * @return void
    	 */
    	public function FilterNegative(){
    		if(isset($this->_image_resource)){
    			imagefilter($this->_image_resource, IMG_FILTER_NEGATE);
    		}else{
    			$this->showError("Load an image first");
    		}
    	}
    
    	/**
    	 * Filter: Grayscale effect
    	 *
    	 * @access public
    	 * @return void
    	 */
    	public function FilterGray(){
    		$this->lazyLoad();
    		if($this->_cache_skip) return;
    		if(isset($this->_image_resource)){
    			imagefilter($this->_image_resource, IMG_FILTER_GRAYSCALE);
    		}
    		//}else{
    		//	$this->showError("Load an image first");
    		//}
    	}
    
    	/**
    	 * Get image resources
    	 *
    	 * @access public
    	 * @return resource
    	 */
    	public function GetResource(){
    		return $this->_image_resource;
    	}
    
    	/**
    	 * Set image resources
    	 *
    	 * @access public
    	 * @param resource $image
    	 * @return resource
    	 */
    	public function SetResource($image){
    		$this->_image_resource = $image;
    	}
    
    	/**
    	 * Enable caching
    	 *
    	 * @access public
    	 * @param string $folder
    	 * @param int $ttl
    	 * @return void
    	 */
    	public function EnableCache($folder="cache/", $ttl=60){
    		if(!is_dir($folder)){
    			$this->showError("Directory '" . $folder . "' does'nt exist");
    		}else{
    			$this->_cache			= true;
    			$this->_cache_folder 	= $folder;
    			$this->_cache_ttl 		= $ttl;
    		}
    		return false;
    	}
    
    }
    ?>
    Bir sunucuda çalışan cache diğer sunucuda çalışmıyor. Kullanılan cache dosyası bundan ibaret. Hangi modülü aktif etmemiz gerekiyor? Ya da ne yapmam gerekiyor sunucuda? Yardımcı olursanız memnun olurum.
  • 06-02-2017, 16:02:53
    #2
    Çalışmıyor da ne oluyor? Loglarda veya ekranda hangi hatalar yazıyor. gd veya gd2 ile çalışıyor. "imagecache/" dizininde yazma izni var mı?
  • 06-02-2017, 16:08:09
    #3
    Üyeliği durduruldu
    Alexis adlı üyeden alıntı: mesajı görüntüle
    Çalışmıyor da ne oluyor? Loglarda veya ekranda hangi hatalar yazıyor. gd veya gd2 ile çalışıyor. "imagecache/" dizininde yazma izni var mı?
    Yazma izni var. Resim üretip görüntülemiyor. Modüller ekli...
  • 06-02-2017, 17:56:33
    #4
    Merhaba,

    Aldığınız hata yazısını paylaşırsanız, Hangi modüllerin çalışıp çalışmadığını veya hatanın neyden kaynaklandığını söyleyebiliriz.

    Eğer hatayı göremiyorsanız aşağıdaki kodu sayfanın başına ( PHP açılış kodlarının altına ) yapıştırın ve tekrar çalıştırın. Dizin durumuna göre bir log dosyası oluşturacaktır ve içerisinde hata kodları gözükecektir. Bunu iletmenizi rica ederim.

    error_reporting(~E_NOTICE);
    ini_set("error_log", "php-error.log");
  • 07-02-2017, 13:24:09
    #5
    Üyeliği durduruldu
    MesutEyrice adlı üyeden alıntı: mesajı görüntüle
    Merhaba,

    Aldığınız hata yazısını paylaşırsanız, Hangi modüllerin çalışıp çalışmadığını veya hatanın neyden kaynaklandığını söyleyebiliriz.

    Eğer hatayı göremiyorsanız aşağıdaki kodu sayfanın başına ( PHP açılış kodlarının altına ) yapıştırın ve tekrar çalıştırın. Dizin durumuna göre bir log dosyası oluşturacaktır ve içerisinde hata kodları gözükecektir. Bunu iletmenizi rica ederim.

    error_reporting(~E_NOTICE);
    ini_set("error_log", "php-error.log");
    [07-Feb-2017 10:14:12 UTC] PHP Warning: imagejpeg(): Filename cannot be empty in /home/deneyelim/web/deneyelim.com/public_html/fotograf.php on line 671
    [07-Feb-2017 10:14:13 UTC] PHP Warning: imagejpeg(): Filename cannot be empty in /home/deneyelim/web/deneyelim.com/public_html/fotograf.php on line 671
    [07-Feb-2017 10:14:13 UTC] PHP Warning: imagejpeg(): Filename cannot be empty in /home/deneyelim/web/deneyelim.com/public_html/fotograf.php on line 671
    [07-Feb-2017 10:14:13 UTC] PHP Warning: imagejpeg(): Filename cannot be empty in /home/deneyelim/web/deneyelim.com/public_html/fotograf.php on line 671
    [07-Feb-2017 10:14:13 UTC] PHP Warning: imagejpeg(): Filename cannot be empty in /home/deneyelim/web/deneyelim.com/public_html/fotograf.php on line 671
    [07-Feb-2017 10:14:13 UTC] PHP Warning: imagejpeg(): Filename cannot be empty in /home/deneyelim/web/deneyelim.com/public_html/fotograf.php on line 671
    [07-Feb-2017 10:14:13 UTC] PHP Warning: imagejpeg(): Filename cannot be empty in /home/deneyelim/web/deneyelim.com/public_html/fotograf.php on line 671
    [07-Feb-2017 10:14:13 UTC] PHP Warning: imagejpeg(): Filename cannot be empty in /home/deneyelim/web/deneyelim.com/public_html/fotograf.php on line 671

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 13:24:09 -->-> Daha önceki mesaj 12:24:46 --

    Arkadaşlar sorunu çözdük. Sorun PHP sürümünden kaynaklı oluşmaktadır.
    PHP 5.3 de;

    case "jpg": imagejpeg($this->_image_resource, "", $quality); break;
    olarak yazdığımız kodu*
    PHP 5.4'de*
    case "jpg": imagejpeg($this->_image_resource, NULL, $quality); break;
    olarak düzenlememiz yani " " (çift tırnak alanını NULL olarak değiştirmemiz gerekmektedir.
    Örnek kod aşağıdadır.

    PHP 5.3
    public function Parse($quality=80){
    $name = $this->generateCacheName();
    $content = "";
    if(!$this->_cache || ($this->_cache && $this->cacheExpired())){
    ob_start();
    header ("Content-type: " . $this->_mime);

    if($this->_extension == "png" || $this->_extension == "gif"){
    imagesavealpha($this->_image_resource, true);
    }

    switch ($this->_extension) {
    case "jpg": imagejpeg($this->_image_resource, NULL, $quality); break;
    case "jpeg": imagejpeg($this->_image_resource, NULL, $quality); break;
    case "gif": imagegif($this->_image_resource); break;
    case "png": imagepng($this->_image_resource); break;
    default: $this->showError('Failed to save image!'); break;
    }
    PHP 5.4

    public function Parse($quality=80){
    $name = $this->generateCacheName();
    $content = "";
    if(!$this->_cache || ($this->_cache && $this->cacheExpired())){
    ob_start();
    header ("Content-type: " . $this->_mime);

    if($this->_extension == "png" || $this->_extension == "gif"){
    imagesavealpha($this->_image_resource, true);
    }

    switch ($this->_extension) {
    case "jpg": imagejpeg($this->_image_resource, NULL, $quality); break;
    case "jpeg": imagejpeg($this->_image_resource, NULL, $quality); break;
    case "gif": imagegif($this->_image_resource); break;
    case "png": imagepng($this->_image_resource); break;
    default: $this->showError('Failed to save image!'); break;
    }