PHP Resim kırpma boş sonuç üretiyor

2 Cevap php

Ben sadece PHP kullanarak bir JPEG görüntü (ölçeklendirme) kırpmak için çalışıyorum. İşte benim işlevi girişleri ile birlikte olduğunu.

function cropPicture($imageLoc, $width, $height, $x1, $y1) {
    $newImage = imagecreatetruecolor($width, $height);

    $source = imagecreatefromjpeg($imageLoc);
    imagecopyresampled($newImage,$source,0,0,$x1,$y1,$width,$height,$width,$height);
    imagejpeg($newImage,$imageLoc,90);
}

Ben aşağıdaki gibi çağırdığınızda - cropPicture('image.jpg', 300, 300, 0, 0) - fonksiyonu düzgün tamamlar, fakat ben (diğer bir deyişle, boş bir tuval) 300x300 px siyah bir görüntü ile sol. Ben yanlış argümanlar geçen muyum?

Görüntü var ve yazılabilir.

2 Cevap

Sobedai cevabı için ek olarak: Any Eğer () başarısız olabilir cropPicture kullanabileceğiniz bu işlevleri. Sen each and every one dönüş değerini test etmek için var. Bir hata durumunda onlar return false ve fonksiyon (düzgün) devam edemiyor.

function cropPicture($imageLoc, $width, $height, $x1, $y1) {
  $newImage = imagecreatetruecolor($width, $height);
  if ( !$newImage ) {
    throw new Exception('imagecreatetruecolor failed');
  }

  $source = imagecreatefromjpeg($imageLoc);
  if ( !$source ) {
    throw new Exception('imagecreatefromjpeg');
  }

  $rc = imagecopyresampled($newImage,$source,0,0,$x1,$y1,$width,$height,$width,$height);
  if ( !$rc ) {
    throw new Exception('imagecopyresampled');
  }

  $rc = imagejpeg($newImage,$imageLoc,90);
  if ( !$rc ) {
    throw new Exception('imagejpeg');
  }
}

edit: Ayrıca http://docs.php.net/error_get_last ilginizi çekebilir. Örnek komut istisna mesajları bu yararlı değildir ...

Birkaç şey:

imageCopyResampled ve imagejpeg için dönüş değerlerini kaydetmek

Bunlardan biri doğru, yanlış olduğunu kontrol ve o daraltmak olacaktır çalışmıyor.

İlk bakışta, ilk okuma ve yazma izinleri bakmak olacaktır.