изображение теряет качество и цвета при преобразовании типов - PullRequest
0 голосов
/ 15 марта 2012

Здравствуйте, я новичок в разработке приложений для Facebook и работаю над своим первым приложением. Мое приложение включает функцию извлечения изображения из профиля пользователя и объединения его с другим изображением.

Проблема в том, что формат изображения профиля, который будет возвращать Facebook, не может быть определен узнал это здесь , поэтому я решил сохранить .gif в качестве файла по умолчанию Тип и создал условие для проверки типа а затем преобразовать любой формат в формат .gif, чтобы его можно было использовать в дальнейшем.

Но проблема в том, что в процессе преобразования изображение теряет качество в очень большой степени, что, конечно, неприемлемо в идеальной ситуации.

// Create image instances
$url = "http://graph.facebook.com/{$userId}/picture?type=large";
$dpImage = 'temp/' . $userId . '_dpImage_' . rand();
file_put_contents($dpImage, file_get_contents($url));
$dpImageGif = 'temp/' . $userId . '_dpImageGif_' . rand() . '.gif';

if (exif_imagetype($dpImage) == IMAGETYPE_GIF) {
$imageObject = imagecreatefromgif($dpImage);
}
if (exif_imagetype($dpImage) == IMAGETYPE_JPEG) {
$imageObject = imagecreatefromjpeg($dpImage);
}
if (exif_imagetype($dpImage) == IMAGETYPE_PNG) {
$imageObject = imagecreatefrompng($dpImage);
}
imagegif($imageObject, $dpImageGif);

$src = imagecreatefromgif($dpImageGif);
$dest = imagecreatefromgif($textImage);

$dst_x = 3;
$dst_y = 69;
$src_x = 0;
$src_y = 0;
$src_w = imagesx($imageObject);
$src_h = imagesy($imageObject);
$pct = 100;

imagecopyresampled($dest, $src, $dst_x, $dst_y, $src_x, $src_y, 200, 280, 180, 252);
$resultImage = "temp/" . $userId . '_resultImage_' . rand() . ".gif";
imagegif($dest, $resultImage);
imagedestroy($dest);
imagedestroy($src);

Есть ли способ обойти это без потери качества изображения. Пожалуйста, помогите мне через это Спасибо.

1 Ответ

0 голосов
/ 01 июля 2012

Сохраняйте исходный формат изображения, потому что я считаю, что GIF работает только с 256 цветами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...