PhpDili Özgün PHP Dersleri

Kategoriler

  • MySQL
  • PHP
  • Ücretsiz Scriptler

Haberdar Olun

Yazılan yazılardan ilk siz haberdar olun, yeni yazılar e-postanıza gönderilsin.

Related Sponsors

PHP Resim Crop

24 Temmuz 2010 tarihinde yazılmıştır.
Bu Yazıyı Paylaş :
Twitter Facebook Friendfeed Google Sık Kullanılanlar Yahoo Sık Kullanılanlar LinkedIn Blogger Digg Stumbleupon Sık Kullanılanlar E-Posta More

Yüklediğimiz resimler için thumbnail oluşturma, bazen ciddi derecede can sıkıcı olabiliyor. Dikdörtgen şekle sahip olan bir resmi kare şeklinde yeniden boyutlandırdığımız vakit resim görüntüsünde ciddi bir kayma meydana geliyor veya mantıklı olarak yeniden boyutlandırma yaptığımızda, küçülttüğümüz resimleri sıralarken kötü bir görünüme sahip olabiliyor. Böyle durumlarda resmi mantıklı bir şekilde kırparak istediğimiz boyutlara getirmek iyi bir çözüm oluyor.

Nette dolaşırken geçmiş zaman içerisinde bulmuş olduğum ve kaynağını hatırlayamadığımdan dolayı kaynak gösteremeyeceğim, kendi kullandığım image crop fonksiyonunu paylaşmak istedim. Benim çok işime yaradı, umarım sizin de işinize yarar.

<?PHP
function crop($kaynak,$hedef)
{
	  define( 'DESIRED_IMAGE_WIDTH', 100 ); //yeniden boyutlandirmak istedigimiz genislik
	  define( 'DESIRED_IMAGE_HEIGHT', 100 ); //yeniden boyutlandirmak istedigimiz yukseklik

	  $source_path = $kaynak;

	  list( $source_width, $source_height, $source_type ) = getimagesize( $source_path );

	  switch ( $source_type )
	  {
		case IMAGETYPE_GIF:
		  $source_gdim = imagecreatefromgif( $source_path );
		  break;

		case IMAGETYPE_JPEG:
		  $source_gdim = imagecreatefromjpeg( $source_path );
		  break;

		case IMAGETYPE_PNG:
		  $source_gdim = imagecreatefrompng( $source_path );
		  break;
	  }

	  $source_aspect_ratio = $source_width / $source_height;
	  $desired_aspect_ratio = DESIRED_IMAGE_WIDTH / DESIRED_IMAGE_HEIGHT;

	  if ( $source_aspect_ratio > $desired_aspect_ratio )
	  {
		$temp_height = DESIRED_IMAGE_HEIGHT;
		$temp_width = ( int ) ( DESIRED_IMAGE_HEIGHT * $source_aspect_ratio );
	  }
	  else
	  {
		$temp_width = DESIRED_IMAGE_WIDTH;
		$temp_height = ( int ) ( DESIRED_IMAGE_WIDTH / $source_aspect_ratio );
	  }

	  $temp_gdim = imagecreatetruecolor( $temp_width, $temp_height );
	  imagecopyresampled(
		$temp_gdim,
		$source_gdim,
		0, 0,
		0, 0,
		$temp_width, $temp_height,
		$source_width, $source_height
	  );

	  $x0 = ( $temp_width - DESIRED_IMAGE_WIDTH ) / 2;
	  $y0 = ( $temp_height - DESIRED_IMAGE_HEIGHT ) / 2;

	  $desired_gdim = imagecreatetruecolor( DESIRED_IMAGE_WIDTH, DESIRED_IMAGE_HEIGHT );
	  imagecopy(
		$desired_gdim,
		$temp_gdim,
		0, 0,
		$x0, $y0,
		DESIRED_IMAGE_WIDTH, DESIRED_IMAGE_HEIGHT
	  );

	  header( 'Content-type: image/jpeg' );
	  imagejpeg($desired_gdim,$hedef);

	  imagedestroy($desired_gdim);
}
?>

Resim Crop Fonksiyonu Kullanımı:

//formdan gelen bilgileri aliyoruz.
$resim = $_FILES['resim_field']['tmp_name'];
$resim_isim = $_FILES['resim_field']['name'];
$klasor = 'uploads/';

crop($resim,$klasor.$resim_isim);

Benzer Yazılar:

  1. Resim Genişlik ve Yükseklik Bilgilerini Öğrenme
  2. CKEditor & CKFinder Kurulumu
  3. Bilgisayarınıza PHP, MySQL ve Apache Kurulumu

Leave a Reply