Posts filed under 'Php'

Resizing images with PHP

Geçenlerde superklipler.net ‘e bot yazarken lazım olmuştu iyide işime yaradı :) bu nedenle sizinlede paylaşmak istiyorum ;

<?php
/*
* File: SimpleImage.php
* Author: Simon Jarvis
* Copyright: 2006 Simon Jarvis
* Date: 08/11/06
* Link: http://www.white-hat-web-design.co.uk/articles/php-image-resizing.php
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details:
* http://www.gnu.org/licenses/gpl.html
*
*/

class SimpleImage {

   var $image;
   var $image_type;

   function load($filename) {
      $image_info = getimagesize($filename);
      $this->image_type = $image_info[2];
      if( $this->image_type == IMAGETYPE_JPEG ) {
         $this->image = imagecreatefromjpeg($filename);
      } elseif( $this->image_type == IMAGETYPE_GIF ) {
         $this->image = imagecreatefromgif($filename);
      } elseif( $this->image_type == IMAGETYPE_PNG ) {
         $this->image = imagecreatefrompng($filename);
      }
   }
   function save($filename, $image_type=IMAGETYPE_JPEG, $compression=75, $permissions=null) {
      if( $image_type == IMAGETYPE_JPEG ) {
         imagejpeg($this->image,$filename,$compression);
      } elseif( $image_type == IMAGETYPE_GIF ) {
         imagegif($this->image,$filename);
      } elseif( $image_type == IMAGETYPE_PNG ) {
         imagepng($this->image,$filename);
      }
      if( $permissions != null) {
         chmod($filename,$permissions);
      }
   }
   function output($image_type=IMAGETYPE_JPEG) {
      if( $image_type == IMAGETYPE_JPEG ) {
         imagejpeg($this->image);
      } elseif( $image_type == IMAGETYPE_GIF ) {
         imagegif($this->image);
      } elseif( $image_type == IMAGETYPE_PNG ) {
         imagepng($this->image);
      }
   }
   function getWidth() {
      return imagesx($this->image);
   }
   function getHeight() {
      return imagesy($this->image);
   }
   function resizeToHeight($height) {
      $ratio = $height / $this->getHeight();
      $width = $this->getWidth() * $ratio;
      $this->resize($width,$height);
   }
   function resizeToWidth($width) {
      $ratio = $width / $this->getWidth();
      $height = $this->getheight() * $ratio;
      $this->resize($width,$height);
   }
   function scale($scale) {
      $width = $this->getWidth() * $scale/100;
      $height = $this->getheight() * $scale/100;
      $this->resize($width,$height);
   }
   function resize($width,$height) {
      $new_image = imagecreatetruecolor($width, $height);
      imagecopyresampled($new_image, $this->image, 0, 0, 0, 0, $width, $height, $this->getWidth(), $this->getHeight());
      $this->image = $new_image;
   }
}
?>

Örnek Kullanım ;

SimpleImage.php yukarıdaki dosyayı kaydedin ve komut dosyası nasıl kullanılacağına ilişkin aşağıdaki örneklere bir göz atın.

Aşağıdaki ilk örnekte yeniden boyutlandırmak istediginiz picture.jpg isimli bir dosyayı yeniden 250 piksel genişliğinde ve 400 piksel yüksekliğinde ve picture2.jpg olarak yeniden kaydetmektir,


<?php
   include('SimpleImage.php');
   $image = new SimpleImage();
   $image->load('picture.jpg');
   $image->resize(250,400);
   $image->save('picture2.jpg');
?>

Bir specifed genişliği resize ama boyutları oranı betik sizin için gerekli yükseklik Yürütebiliriz aynı tutmak için resizeToWidth işlevini kullanın isterseniz.

<?php
   include('SimpleImage.php');
   $image = new SimpleImage();
   $image->load('picture.jpg');
   $image->resizeToWidth(250);
   $image->save('picture2.jpg');
?>

Sen özgün genişlik ve yükseklik% 50 Resmi yeniden boyutlandırmak olacak aşağıdaki gibi belirli bir yüzdesi bir görüntü ölçekli isteyebilirsiniz

<?php
   include('SimpleImage.php');
   $image = new SimpleImage();
   $image->load('picture.jpg');
   $image->scale(50);
   $image->save('picture2.jpg');
?>

Sen elbette bir şey bir kez daha yok. Aşağıdaki örnek, 200 piksel ve 500 piksel yüksekliğinde iki yeni görüntüler yaratır

<?php
   include('SimpleImage.php');
   $image = new SimpleImage();
   $image->load('picture.jpg');
   $image->resizeToHeight(500);
   $image->save('picture2.jpg');
   $image->resizeToHeight(200);
   $image->save('picture3.jpg');
?>

Çıkış fonksiyonu tarayıcı doğrudan çıkış görüntü dosyasını kaydetmek zorunda kalmadan sağlar. Onun için sinek thumbnail nesil yararlı

<?php
   header('Content-Type: image/jpeg');
   include('SimpleImage.php');
   $image = new SimpleImage();
   $image->load('picture.jpg');
   $image->resizeToWidth(150);
   $image->output();
?>

Aşağıdaki örnek, yeniden boyutlandırma ve bir form üzerinden yüklenen bir görüntü kaydetmek

<?php
   if( isset($_POST['submit']) ) {
      include('SimpleImage.php');
      $image = new SimpleImage();
      $image->load($_FILES['uploaded_image']['tmp_name']);
      $image->resizeToWidth(150);
      $image->output();
   } else {
?>
   <form action="upload.php" method="post" enctype="multipart/form-data">
      <input type="file" name="uploaded_image" />
      <input type="submit" name="submit" value="Upload" />
   </form>
<?php
   }
?>

Kaynak : http://www.white-hat-web-design.co.uk/articles/php-image-resizing.php

Add comment Ağustos 8th, 2010

Too many connections sorununa bir kaç çözüm önerisi

Merhaba arkadaşlar,

çogu arkadasımız “Too many connections” dan şikayetçidir, bu konuda bir kaç örnek kod verecegim

ilk örnegimiz mysql kullanıcı limiti aşıldıgında kullanıcıyı farkı bir sayfaya yonlendirme

<?php

$link = mysql_connect(“localhost”, ”mysql_”, ”mysql_password”);
if (mysql_errno() == 1203) {
// 1203 == ER_TOO_MANY_USER_CONNECTIONS (mysqld_error.h)
header(“Location: http://projeman.com/bakim.php”);
exit;
}
?>

ikinci örneğimizde ise baglantı limiti aşıldıgında ikinci veritabanını devreye sokmak

<?
ini_set(‘display_errors’, ’0′);
$link = mysql_connect(“localhost”, ”user”, ”pass”);
if (mysql_errno() == 1040 OR mysql_errno() == 1203) {
define(“DB_HOST”, ”some_ip:3306″);//remote
define(“DB_NAME”, ”db”);  //database_name
define(“DB_USER”, ”user”); //database user name
define(“DB_PASSWORD”,”pass”);  //database (user) password
}
else
{
define(“DB_HOST”, ”localhost”);
define(“DB_NAME”, ”db_name2″);  //database_name
define(“DB_USER”, ”user”); //database user name
define(“DB_PASSWORD”,”pass”);  //database (user) password
}
ini_set(‘display_errors’, ’1′);
?>

Add comment Şubat 15th, 2010


Calendar

Eylül 2010
Pts Sal Çar Per Cum Cts Paz
« Ağu    
 12345
6789101112
13141516171819
20212223242526
27282930  

Posts by Month

Posts by Category


78