Php Gd resmi döndürmek

3 Cevap php

Merhaba,

Ben merkezi etrafında dairesel bir görüntüyü döndürmek için çalışıyor ve ardından tarafı kesmek duyuyorum. Ben imagerotate işlevi görmek, ancak Merkezi hakkında döndürmek için görünmüyor.

Herkes herhangi bir öneriniz var mı?

Teşekkür ederim.

Güncellemek: bir daire olduğundan, kenarları kesilmiş ve aynı ebatlarda dairemi tutmak istiyorum.

3 Cevap

documentation o does merkezi etrafında döndürmek söylüyor.

Ne yazık ki o da hala uyuyor böylece görüntü ölçek söylüyor. Yani ne olursa olsun, bu fonksiyon iç dairesel görüntünün boyutunu değiştirmek anlamına gelir.

Sen (nispeten kolay) aşağı ölçeklendirme olacağını ne kadar hesaplamak ve sonra uygun önceden görüntüyü Prescale olabilir.

Eğer PHP "ImageMagick" işlevlerini available o yerine kullanabileceğiniz varsa - onlar görünüşe görüntü ölçek yoktur.

Ben başarıyla Aşağıdaki kod ile bu sorunu karşı karşıya

    $width_before = imagesx($img1);
    $height_before = imagesy($img1);
    $img1 = imagerotate($img1, $angle, $mycolor);

    //but imagerotate scales, so we clip to the original size

    $img2 = @imagecreatetruecolor($width_before, $height_before);
    $new_width = imagesx($img1); // whese dimensions are
    $new_height = imagesy($img1);// the scaled ones (by imagerotate)
    imagecopyresampled(
        $img2, $img1,
        0, 0,
        ($new_width-$width_before)/2,
        ($new_height-$height_before)/2,
        $width_before
        $height_before,
        $width_before,
        $height_before
    );
    $img1 = $img2;
    // now img1 is center rotated and maintains original size

Umarım yardımcı olur.

Bye

PHP kılavuzda imagerotate() sayfasına göre:

The center of rotation is the center of the image, and the rotated image is scaled down so that the whole rotated image fits in the destination image - the edges are not clipped.

Belki görüntünün görünür merkezi fiili merkezi değil mi?