Php Gd повернуть изображение - PullRequest
2 голосов
/ 23 апреля 2009

здравствуйте,

Я пытаюсь повернуть круговое изображение вокруг центра, а затем отрезать стороны. Я вижу функцию imagerotate, но она не вращается вокруг центра.

У кого-нибудь есть предложения?

Спасибо.

Обновление: поскольку это круг, я хочу обрезать края и сохранить круг в тех же измерениях.

Ответы [ 3 ]

4 голосов
/ 05 декабря 2011

Я успешно столкнулся с этой проблемой с помощью следующего кода

    $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

Надеюсь, это поможет.

Bye

3 голосов
/ 23 апреля 2009

В документации говорится, что вращается вокруг центра .

К сожалению, это также говорит о том, что оно будет масштабировать изображение так, чтобы оно все еще подходило. Это означает, что независимо от того, что вы делаете, эта функция изменит размер вашего внутреннего круглого изображения.

Вы можете (относительно легко) рассчитать степень уменьшения масштаба, а затем предварительно масштабировать изображение соответствующим образом.

Если у вас есть функции PHP «ImageMagick» доступны , вы можете использовать их вместо этого - они, очевидно, не масштабируют изображение.

0 голосов
/ 23 апреля 2009

Согласно инструкции PHP imagerotate () страница:

Центр вращения - это центр изображения, и повернутое изображение уменьшено так, чтобы все вращалось изображение вписывается в конечное изображение - края не обрезаны.

Возможно, видимый центр изображения не является действительным центром?

...