Posts filed under 'Genel'

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

Google’den genele açık DNS hizmeti

Google bir süre önce genele açık DNS sunucularını hizmete soktu. DNS hizmeti 8.8.8.8 ve 8.8.4.4 gibi hatırlaması gayet kolay olan adresler üzerinden veriliyor. Google’un DNS hizmetini bilgisayarınızda kullanmak için gerekli ayarlara buradan göz atabilirsiniz.
Google DNS hizmetini hız ve güvenlik sloganlarıyla sunuyor. Hızlı olmasını tamam ama DNS’in güvenli olması nedir diyorsanız buraya göz atabilirsiniz. Bunu kısaca özetlemek gerekirse; DNS sunucular, yanlış IP adresi döndürmesi için korsanlar tarafından çeşitli saldırılara uğrayabilmekte.
Google Code’da yayınlanan proje sayfasının bağlantısı: http://code.google.com/intl/tr-TR/speed/public-dns/

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