Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сохранение EXIF в изображениях 
:(
    Опции темы
Micher
Дата 19.6.2008, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 13.1.2006
Где: г. Ижевск

Репутация: нет
Всего: нет



Всем доброго дня! Такая проблема: загружается картинка на сервер, обрабатывается(обрамляется и ставится копирайт) и сохраняется. При этом EXIF изображения теряется. Как его сохранить в изменённый файл? Единственное что нашёл, это как читать заголовки EXIF (exif_read_data - возвращает ассоциативный массив). Подскажите, кто с этой темой знаком.

Приведу функцию, к-я делает рамку и копирайт:
Код

function createPicFrame($szSource, $frame = false, $copyright = false) {
        ........
        $im1 = imagecreatefromjpeg($szSource);
        list($width, $height) = getimagesize($szSource);

        ........
        $im1 = @imagecreatefromjpeg($szSource);
        ........

        if ($frame) {
            ........
            $im2 = imagecreatetruecolor($im2_width, $height + 50);
            $colorFrame  = imageColorAllocate($im2, $rr_f, $gg_f, $bb_f);

            imagefilledrectangle($im2, $part - 2, 23, $part + $width + 1, $height + 26, $colorFrame);
            imagefilledrectangle($im2, 1, 1, $width + 48, $height+48, $colorFrame);
            imagecopyresampled($im2, $im1, $part, 25, 0, 0, $width, $height, $width, $height);
        } else {
            $im2 = imagecreatetruecolor($width, $height);
            imagecopyresampled($im2, $im1, 0, 0, 0, 0, $width, $height, $width, $height);
        }

        if ($copyright) {
                $font = 'david.ttf';
                $nFontHeight = 11;
                $color = imagecolorallocate($im2, $rr, $gg, $bb);

                if ($frame) {

                    $x = 18 - $nFontHeight;
                    $y = $height + 25 + $nFontHeight + 7;
                    $szText = html_entity_decode($copy_hor);
                    imagettftext($im2, $nFontHeight, 0, $x, $y, $color, $font, $szText);

                    $x = 17;
                    $y = $height + 29;
                    $szText = html_entity_decode(IMG_TEXT_VERTICAL);
                    imagettftext($im2, $nFontHeight, 90, $x, $y, $color, $font, $szText);
                } else {

                    $x = 18 - $nFontHeight;
                    $y = $height - 18 + $nFontHeight;
                    $szText = html_entity_decode($copy_hor);
                    imagettftext($im2, $nFontHeight, 0, $x, $y, $color, $font, $szText);

                    $x = 17;
                    $y = $height - 21;
                    $szText = html_entity_decode(IMG_TEXT_VERTICAL);
                    imagettftext($im2, $nFontHeight, 90, $x, $y, $color, $font, $szText);
                }
        }

        imagejpeg($im2, $szSource, 100);
}



Т.е. фактически, как я понимаю, функция  imagejpeg() сохраняя картинку, не сохраняет EXIF
PM MAIL   Вверх
IZ@TOP
Дата 19.6.2008, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 1
Всего: 73



Потыркался по гуглу: вроде пишут что связано с версией GD и наличием EXIF модуля.
Вообще, рекомендую ImageMagick.



--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

Внимание: данный раздел предназначен для решения сложных, нестандартных задач.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Для профи | Следующая тема »


 




[ Время генерации скрипта: 0.0468 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.