Я испытываю некоторые странности с PHP 5.3.3, я пытаюсь добавить водяной знак к изображению.
$body = @imagecreatefromstring($image_data['body']);
imagejpeg($body, null, 85);
возвращает: http://i.stack.imgur.com/KJjDi.jpg
$body = @imagecreatefromstring($image_data['body']);
$logo = @imagecreatefrompng(APP_ROOT . self::WATERMARK_PATH);
$body_width = (int) @imagesx($body);
$body_height = (int) @imagesy($body);
$logo_width = (int) @imagesx($logo);
$logo_height = (int) @imagesy($logo);
$image = imagecreatetruecolor($body_width + 4, $body_height + $logo_height);
imagecopy(
$image, $logo,
intval($body_width / 2) - ceil($logo_width / 2), $body_height,
0, 0, $logo_width, $logo_height
);
imagejpeg($image, null, 85);
возвращает: http://i.stack.imgur.com/nwtqZ.jpg
buuuuuuuuut ...... если я добавлю тело (кошку) к изображению ...
$body = @imagecreatefromstring($image_data['body']);
$logo = @imagecreatefrompng(APP_ROOT . self::WATERMARK_PATH);
$body_width = (int) @imagesx($body);
$body_height = (int) @imagesy($body);
$logo_width = (int) @imagesx($logo);
$logo_height = (int) @imagesy($logo);
$image = imagecreatetruecolor($body_width + 4, $body_height + $logo_height);
imagecopy(
$image, $body,
1, 1,
0, 0, $body_width, $body_height
);
imagecopy(
$image, $logo,
intval($body_width / 2) - ceil($logo_width / 2), $body_height,
0, 0, $logo_width, $logo_height
);
imagejpeg($image, null, 85);
приведет к 1015 * Как вы можете видеть в этом последнем, нижняя часть изображения повреждена или что-то ...... что случилось?