Способ синтезирования динамических виртуальных картинок

Иллюстрации

Показать все

Изобретение относится к технологиям обработки изображений, в частности к способу синтезирования динамических виртуальных картинок. Технический результат заключается в обеспечении улучшенной услуги для пользователя. Способ содержит следующие действия: а) синтезирующая серверная сторона получает пользовательский запрос на синтезирование виртуальной картинки, отправленный пользователем, и, в соответствии с информацией пользовательского запроса, получает файлы изображений всех компонентов для синтезирования виртуальной картинки; b) поочередно считывают соответствующие файлы изображений компонента в соответствии с номерами слоев каждого компонента и трансформируют полученные файлы изображений компонентов в заданный формат; с) синтезируют компонент, отформатированный на шаге b), и предварительно считанный файл шаблона для формирования промежуточной картинки; d) определяют, все ли компоненты синтезированы; если все компоненты синтезированы, то переходят к шагу е); в противном случае - переходят к шагу f); е) записывают синтезированную виртуальную картинку на основании всех синтезированных компонентов в файл изображения виртуальной картинки и заканчивают процедуру; f) считывают один за другим соответствующие файлы изображения другого компонента согласно номеру слоя каждого компонента и преобразуют полученные файлы изображения компонента в заданный формат; g) синтезируют компонент, отформатированный на шаге f), и предварительно синтезированную промежуточную картинку и возвращаются к шагу d). 13 з.п. ф-лы, 2 ил., 1 табл.

Реферат

Область изобретения

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

Предпосылки создания изобретения

Технология виртуальных картинок развивалась в сети Интернет в последние годы, и постепенно виртуальная веб-картинка стала модной среди постоянных пользователей Интернета, т.к. она может воплотить в себе индивидуальность пользователя и выразить его оригинальность; виртуальная картинка стала очень популярной в этой среде. В настоящее время большинство виртуальных картинок сохраняют в формате обмена графическими файлами (GIF), и каждая виртуальная картинка состоит из нескольких компонентов. Здесь компонент означает каждое из частичных изображений, входящее в состав виртуальной картинки и сохраненное в формате GIF, при этом каждый компонент - это однокадровое изображение формата GIF.

Формат GIF является базовым стандартным форматом хранения файлов изображения, при этом каждый файл GIF может содержать множество цветных изображений, где каждое цветное изображение называют «кадром»; другими словами, в каждом файле GIF может быть сохранено множество «кадров». Эти изображения GIF можно разделить на однокадровые изображения и на многокадровые изображения, и, вообще говоря, однокадровое изображение представляют как статическое изображение, в то время как многокадровое изображение отображается кадр за кадром для представления динамического эффекта или эффекта анимации, так же, как при проецировании диапозитивов. Однако каждый кадр отличается от одиночного элемента изображения тем, что данный отдельный кадр не может сформировать изображения, поэтому один кадр в изображении GIF должен быть ассоциирован с предыдущим кадром, чтобы быть представленным как изображение. Изображение GIF хранит в себе информацию об изображении, единицей которой является блок, и каждый файл GIF содержит блок, указывающий на графику/изображение, подблок и управляющий блок данных, отображающий графику/изображение, которые вместе называются потоком GIF-данных. Все управляющие блоки данных и блоки в потоке данных должны быть расположены между Заголовком и Концевой частью. В формате GIF применен алгоритм сжатия Лемпеля-Зива-Уэлча (LZW) для хранения данных изображения, также пользователям разрешено задавать атрибут прозрачности для фона изображения.

Характерная структура файла GIF представлена в таблице.

Таблица
МеткаНазвание составляющейОписание
1ЗаголовокЗаголовок GIF
2Дескриптор логического экранаБлок описания логического экрана
3Глобальная таблица цветовГлобальная таблица цветов
...Модуль расширения (выбирается произвольно)...
4Дескриптор изображенияБлок описания изображенияПовторяется N раз
5Локальная таблица цветовЛокальная таблица цветов (может быть повторена N раз)
6Табличные данные об изображенииТабличные сжатые данные об изображении
7Расширение управления графикойБлок расширения управления графикой
8Расширение простого текстаБлок расширения простого текста
9Расширение комментарияБлок расширения комментария
10Расширение приложенияБлок расширения приложения
...Модуль расширения (выбирается произвольно)...
11Концевая часть GIFКонцевая часть GIF

Файл GIF содержит три типа блоков: блок управления, блок воспроизведения графики и блок специального назначения. Из них блок управления содержит информацию для управления потоком данных или установки параметров аппаратных средств, причем элементы блока управления содержат: заголовок GIF, дескриптор логического экрана, расширение управления графикой и концевую часть GIF-файла. Блок воспроизведения графики содержит информацию и данные для отображения графики на дисплее, причем элементы графического дескриптора содержат: дескриптор изображения и расширение простого текста. Блок специального назначения содержит информацию, независимую от обработки изображения, при этом элементы блока специального назначения содержат: расширение комментария и расширение приложения. Здесь области влияния только дескриптора логического экрана и глобальной таблицы цветов в блоке управления расположены вне потока данных, в то время как все другие блоки управления управляют только блоками воспроизведения графики, которые следуют за ними. Другими словами, в таблице дескриптор логического экрана и глобальная таблица цветов действуют на весь файл, в то время как расширение приложения, расширение читаемого текста, расширение комментария и расширение управления графикой управляют только теми блоками воспроизведения графики, которые следуют за ними.

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

Поскольку один GIF-файл может содержать множество цветных изображений и каждое цветное изображение может иметь таблицу цветов в соответствии с характеристиками этого изображения, то один GIF-файл может иметь несколько таблиц цветов. Однако в общем существует только два типа таблиц цветов: глобальная таблица цветов и локальная таблица цветов. Глобальная таблица цветов применима ко всем изображениям, не имеющим своей таблицы цветов, и к расширениям читаемого текста, в то время как локальная таблица цветов применима только к следующему за ней изображению. Глобальная таблица цветов может отсутствовать, если каждый из кадров изображения имеет локальную таблицу цветов.

Расширение приложения содержит релевантную информацию о программе приложения для формирования файла изображения, например: есть ли периодически воспроизводимая анимация, сколько раз она должна быть периодически проиграна и т.д. Данный блок может быть опущен, если файл изображения является статическим.

Расширение управления графикой содержит параметры для обработки блока воспроизведения графики, включая: отметку прозрачности, которая указывает на наличие прозрачности, цветовой индекс прозрачности, способ обработки, время задержки и т.д. При этом способ обработки используется для конкретизации процесса после того, как графика выведена на дисплей, например: а) процесс не конкретизирован; б) процесс не конкретизирован и графика остается на прежнем месте; в) цвет области, отображающей графику, должен быть восстановлен как цвет фона; г) отображается графика, которая отображалась до этого. Время задержки, единицей измерения которого является 1% секунды, используют для указания интервала ожидания между выведением графики и последующим процессом.

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

Данные изображения содержат последовательности данных. Эти данные изображения записывают каждый пиксель, используя значение индекса таблицы цветов, и сжимают данные, используя алгоритм LZW.

В уровне техники для осуществления процесса синтеза виртуальных картинок обычно применяют пакет программ синтезирования, используемый, в общем случае, посредством сети Интернет как, например, библиотека Gif Draw (GD). Поскольку библиотека GD не может обработать многокадровый файл в формате GIF и может обработать только однокадровый GIF-файл, то существующая технология синтезирования виртуальных картинок позволяет синтезировать только статическую виртуальную картинку, что в общем случае называют синтезированием статических виртуальных картинок. Процедура осуществления синтезирования статической виртуальной картинки в уровне техники содержит следующие действия: определяют контекстуальные отношения между компонентами, а также задают подобные контекстуальные отношения со слоями; при выполнении синтезирования сначала синтезируют первый слой и фоновое изображение согласно последовательности номеров слоев; затем синтезируют второй слой и ранее синтезированное изображение, дальнейшее можно продолжить аналогично до тех пор, пока не будут синтезированы все слои. Допустим, например, что есть три компонента, помимо фона, а именно: брюки, куртка и лицо, при этом получается следующая виртуальная картинка: лицо находится перед курткой, часть воротника закрыта лицом, куртка находится перед брюками, причем куртка закрывает часть брюк; тогда заранее определенные номера слоев таковы: брюки 1, куртка 2 и лицо 3; если синтезирование завершено, то брюки вставлены в фон первыми, далее вставляют куртку, лицо вставляют последним; под процессом вставки здесь понимают синтезирование изображений путем использования существующих синтезирующих функций.

Хотя описанный выше способ синтезирования очень прост и легок в реализации, поскольку каждый компонент является одним кадром, а каждое временно синтезированное изображение - это также один кадр, однако конечное синтезированное изображение также является одним статическим кадром; другими словами, при использовании вышеуказанного способа можно получить только статическую виртуальную картинку. Даже если компоненты синтезирования - это многокадровые динамические GIF-файлы, только первый кадр может быть прочитан с целью синтезирования, следовательно, синтезированное виртуальное изображение является простым и "негибким", оно неспособно удовлетворить требования пользователя.

Сущность изобретения

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

Для достижения вышеуказанных целей реализована следующая техническая схема настоящего изобретения.

Способ синтезирования динамических виртуальных картинок, содержащий следующие действия:

a) синтезирующая серверная сторона получает пользовательский запрос на синтезирование виртуальной картинки, отправленный пользователем, и, в соответствии с информацией пользовательского запроса, получает файлы изображений всех компонентов для синтезирования виртуальной картинки;

b) поочередно считывают соответствующие файлы изображений компонента в соответствии с номерами слоев каждого компонента и трансформируют полученные файлы изображений компонентов в заданный формат;

c) синтезируют компонент, отформатированный на шаге b), и предварительно считанный файл шаблона для формирования промежуточной картинки;

d) определяют, все ли компоненты синтезированы; если все компоненты синтезированы, то переходят к шагу е); в противном случае переходят к шагу f);

e) записывают синтезированную виртуальную картинку на основании всех синтезированных компонентов в файл изображения виртуальной картинки и заканчивают процедуру;

f) считывают один за другим соответствующие файлы изображения другого компонента согласно номеру слоя каждого компонента и преобразуют полученные файлы изображения компонента в заданный формат;

g) синтезируют компонент, отформатированный на шаге f), и предварительно синтезированную промежуточную картинку и возвращаются к шагу d).

Шаг g) включает следующие шаги:

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

Перед записью кадр за кадром синтезированной виртуальной картинки на основании всех синтезированных компонентов в файл изображения виртуальной картинки на шаге d) способ дополнительно содержит следующие шаги:

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

записывают каждый кадр, соответствующий сжатой и синтезированной виртуальной картинке, в файл изображения виртуальной картинки.

Процесс сжатия, в частности, содержит следующие действия:

последовательно точка за точкой сравнивают значение пикселей кадра со значением пикселей предыдущего кадра и, если два значения пикселей одинаковы, то изменяют цвет точки на прозрачный; если два значения пикселей различны, никаких действий не выполняют.

Способ дополнительно содержит следующий шаг:

предварительно получают информацию обо всех компонентах виртуальной картинки, которую необходимо синтезировать; при этом шаг а) содержит следующие действия:

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

Информация о компонентах содержит, как минимум:

метку компонента, идентифицирующую данный компонент единственным образом, и соответствующий номер слоя компонента.

Трансформирование файлов изображения компонента в заданный формат, в частности, содержит следующие шаги:

b11) добавляют цвета из локальной таблицы цветов файла изображения компонента в глобальную таблицу цветов и оценивают, превышает глобальная таблица цветов максимальное число цветов или нет; если глобальная таблица цветов превышает максимальное число цветов, то рассчитывают наименее отдаленный цвет и добавляют данный рассчитанный наименее удаленный цвет в глобальную таблицу цветов; в противном случае, непосредственно добавляют цвета из локальной таблицы цветов в глобальную таблицу цветов;

b12) оценивают, прозрачна ли каждая пиксельная точка данного кадра; если каждая пиксельная точка кадра прозрачна, то принимают цвет пиксельной точки согласно предыдущему кадру, ассоциированному с данным кадром; в противном случае принимают цвет пиксельной точки данного кадра;

b13) после отображения в расширении управления графикой в файле изображения компонента задают вид обработки единым образом, а именно: восстанавливают цвет области, где отображается графика, в качестве обязательного цвета фона.

Заявленный способ дополнительно содержит следующие шаги:

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

Синтезирование кадра компонента и соответствующиих кадров промежуточной картинки в соответствии с длительностью фиксации отображения каждого кадра на шаге g) содержит следующие действия:

g11) вычисляют суммарную длительность отображения всех кадров в промежуточной картинке и, в то же время, вычисляют суммарную длительность отображения всех кадров в компоненте, и принимают наименьшее общее кратное для обеих вычисленных сумм длительности отображения в качестве суммарной длительности отображения всех кадров в синтезированной картинке;

g12) определяют точку вставки кадра в соответствии с числом кадров данного компонента и с длительностью фиксации отображения каждого кадра в нем, с числом кадров промежуточной картинки и длительностью фиксации отображения каждого кадра в ней, а также с суммарной длительностью фиксации отображения всех кадров, полученных на шаге g);

g13) синтезируют кадр компонента и кадр промежуточной картинки в каждой точке вставки.

Синтезирование соответствующих кадров данного компонента и соответствующих кадров промежуточной картинки в соответствии с длительностью фиксации отображения каждого кадра на шаге g) дополнительно содержит следующие действия:

g21) вычисляют суммарную длительность отображения всех кадров в промежуточной картинке и, в то же время, рассчитывают суммарную длительность отображения всех кадров в данном компоненте, и принимают большее значение суммарной длительности отображения данного компонента и суммарной длительности фиксации промежуточной картинки;

g22) определяют точку вставки этого кадра в соответствии с длительностью фиксации отображения каждого кадра в данном компоненте, с длительностью фиксации отображения каждого кадра в промежуточной картинке, а также с большим значением суммарной длительности фиксации данного компонента и суммарной длительности фиксации промежуточной картинки;

g23) синтезируют кадр компонента и кадр промежуточной картинки в каждой точке вставки.

Если длительность фиксации отображения каждого кадра в промежуточной картинке и длительность фиксации отображения каждого кадра в данном компоненте одинаковы, то синтезирование соответствующих кадров данного компонента и кадров промежуточной картинки в соответствии с длительностью фиксации отображения каждого кадра в них на шаге g) дополнительно содержит следующие шаги:

g31) вычисляют наименьшее общее кратное количества кадров этого компонента и количества кадров промежуточной картинки;

g32) определяют точку вставки кадра в соответствии с количеством кадров данного компонента, количеством кадров промежуточной картинки и наименьшим общим кратным количества кадров данного компонента и количества кадров промежуточной картинки;

g33) синтезируют кадр компонента и кадра промежуточной картинки в каждой точке вставки.

Если длительность фиксации отображения кадров промежуточной картинки и длительность фиксации отображения кадров данного компонента одинаковы, при этом и число кадров данного компонента, и число кадров промежуточной картинки являются степенью числа 2, то синтезирование соответствующих кадров данного компонента и кадров промежуточной картинки соответственно длительности фиксации отображения каждого кадра на шаге g) дополнительно включает следующие шаги:

g41) принимают наибольшее значение количества кадров компонента и количества кадров промежуточной картинки;

g42) определяют точки вставки кадра в соответствии с количеством кадров компонента, количеством кадров промежуточной картинки и наибольшим значением количества кадров компонента и количества кадров промежуточной картинки;

g43) синтезируют кадр компонента и кадр промежуточной картинки в каждой точке вставки.

Синтезирование на шаге g) дополнительно содержит следующие шаги:

g1) анализируют каждую пиксельную точку кадра в данном компоненте, оценивая, является ли прозрачным цвет данной пиксельной точки; если цвет данной пиксельной точки является прозрачным, что означает, что цвет соответствующей пиксельной точки синтезированного кадра такой же, как и цвет соответствующей пиксельной точки ассоциированного кадра промежуточной картинки, то возвращаются к шагу g1) и продолжают обрабатывать следующую пиксельную точку; в противном случае выполняют шаг g2);

g2) оценивают, есть ли в глобальной таблице цветов промежуточной картинки цвет, эквивалентный цвету данной пиксельной точки; если в глобальной таблице цветов промежуточной картинки есть цвет, эквивалентный цвету данной пиксельной точки, то маркируют соответствующую пиксельную точку синтезированного кадра с применением эквивалентного цвета, возвращаются к шагу g1) и продолжают обработку следующей пиксельной точки; в противном случае выполняют шаг g3);

g3) оценивают, до конца ли заполнена глобальная таблица цветов промежуточной картинки; если глобальная таблица цветов промежуточной картинки заполнена не до конца, то заполняют глобальную таблицу цветов промежуточной картинки цветом соответствующей пиксельной точки кадра данного компонента и маркируют соответствующую пиксельную точку синтезированного кадра этим цветом; если глобальная таблица цветов заполнена до конца, то ищут наименее отдаленный цвет в глобальной таблице цветов промежуточной картинки и маркируют соответствующую пиксельную точку синтезированного кадра этим цветом.

Файл изображения является взаимозаменяемым файлом формата графического обмена (GIF) в формате файлов изображения.

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

Таким образом, осуществляют синтезирование динамических виртуальных картинок, благодаря чему пользователю предоставляют улучшенную услугу, более удовлетворяющую пользователя. К тому же технология синтезирования динамических виртуальных картинок может принести большой доход провайдерам услуг, поскольку, как показало проведенное исследование, 10% постоянных пользователей сети Интернет стремятся, а более 85% постоянных пользователей сети Интернет - очень сильно стремятся, синтезировать динамические виртуальные картинки.

Краткое описание чертежей

На фиг.1 показана блок-схема, представляющая процесс осуществления данного способа в соответствии с реализацией настоящего изобретения.

Фиг.2 - это схематическое изображение, представляющее процесс определения точки вставки кадра во время синтезирования в реализации настоящего изобретения.

Подробное раскрытие изобретения

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

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

Поскольку каждый компонент виртуальной картинки является файлом изображения GIF, то перед началом процесса синтезирования требуется пометить все компоненты виртуальной картинки, которые необходимо синтезировать, так, чтобы каждый компонент был идентифицирован единственной меткой. В то же время необходимо определить номер слоя каждого компонента в соответствии с порядком расположения друг за другом каждого компонента в виртуальной картинке; хотя номер слоя и метка каждого компонента независимы друг от друга, во время синтезирования может быть только один компонент с определенным номером слоя. В общем, порядок следования от фона к переднему плану использует возрастающие номера слоев, иначе говоря, номера слоев переднего плана больше, чем номера слоев фона, в таком положении компоненты с большими номерами слоев могут перекрывать компоненты с меньшими номерами слоев, например: портрет может перекрывать фон, рука может перекрывать тело и т.д.

После того как определят метку и номер слоя каждого компонента, все файлы компонентов сохраняют соответственно метке компонента и номеру слоя, чтобы организовать структуру каталога, например: метка компонента автомобиля - 4, а номер слоя - 20; метка компонента цветка - 8, а номер слоя - 12 и т.д., при этом удобно читать компоненты во время синтезирования виртуальной картинки.

В общем, синтезирование виртуальной картинки запускается и становится возможным в соответствии с запросом пользователя; перед отсылкой запроса пользователю уже известно, какие компоненты содержит виртуальная картинка, которую необходимо синтезировать, а также соответствующие метки и номера слоев этих компонентов, например: пользователь приобретает необходимые компоненты заранее, выбирает подходящие друг другу определенный фон и определенную ткань. Таким образом, когда пользователь отсылает запрос, данный запрос будет содержать информацию обо всех компонентах; иначе говоря, пользователь посылает свою идентификационную информацию вместе с информацией о компонентах для синтезирования виртуальной картинки на сетевой сервер, например, следующим образом: идентификатор пользователя, метка 1-го компонента и соответствующий номер слоя, метка 2-го компонента и соответствующий номер слоя... метка n-го компонента и соответствующий номер слоя. Здесь сервер для реализации функции синтезирования изображения назван синтезирующим сервером; идентификатор пользователя может быть регистрационным именем или регистрационной меткой соответствующего пользователя.

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

Шаг 101: когда пользователь запрашивает синтезирование виртуальной картинки, то он посылает пользовательский запрос, содержащий идентификационную информацию пользователя и информацию о компонентах, на сторону синтезирующего сервера; синтезирующий сервер анализирует полученный пользовательский запрос и получает из пользовательского запроса число компонентов для синтезирования виртуальной картинки, а также соответствующую метку и номер слоя каждого компонента; и затем соответствующий файл изображения компонента может быть получен из структуры каталога компонентов в соответствии с меткой компонента и соответствующим номером слоя.

Шаг 102: после определения всех компонентов, необходимых для синтезирования данной виртуальной картинки в текущий момент, синтезирующий сервер должен сначала прочесть шаблон виртуальной картинки, а затем, в соответствии с различными номерами слоев, синтезирует в данном шаблоне каждый компонент один за другим.

Поскольку каждый пользователь может выбрать различные номера компонентов с различными номерами слоев, то шаблон должен быть наложен на базовый шаблон виртуальной картинки, где шаблон - это GIF-файл, сгенерированный в соответствии с заданным форматом, являющийся изображением белого цвета или прозрачным изображением; шаблон можно также считать предварительно синтезированной промежуточной виртуальной картинкой. В общем, шаблон может быть автоматически добавлен синтезирующим сервером.

Шаг 103: после считывания шаблона виртуальной картинки, в соответствии с меткой компонента и номером слоя, синтезирующий сервер считывает соответствующие файлы изображений компонента, начиная от компонента с меньшим номером слоя.

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

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

Шаг 104: считанные файлы изображений компонентов приводят к заданному формату, иначе говоря, выполняют инициализацию формата.

Из данного описания очевидно, что синтезирование динамического изображения GIF с позиции расширения управления графикой в файловом формате GIF очень затруднено из-за трех проблем: 1) в GIF-файле декодер может выполнить четыре вида процессов с отображенным кадром, что означает, что есть четыре типа динамических GIF-ов, однако статический GIF не может включать в себя разницу между этими четырьмя типами, поскольку статический GIF содержит только один кадр; 2) поскольку каждый кадр в многокадровом GIF может иметь собственную локальную таблицу цветов или может использовать цвета из глобальной таблице цветов вместо локальной таблицы цветов, то подобная ситуация может привести к изменению многокадровых GIF-файлов; 3) поскольку количество кадров в GIF-файле каждого компонента отличается от количества кадров других компонентов, а длительность фиксации отображения каждого кадра также отличается от других, то эта ситуация может также привести к изменению многокадровых GIF-файлов.

В отношении указанных проблем в вариантах осуществления настоящего изобретения две вышеперечисленные проблемы могут быть решены путем форматирования GIF-компонента, в то время как третья проблема будет решена во время синтезирования. Конкретный способ форматирования, в соответствии с реализациями настоящего изобретения, приведен ниже:

а1) таблицы цветов унифицируют, а именно: если количество цветов превышает максимальное количество цветов в глобальной таблице цветов, то при добавлении цветов локальной таблицы цветов в глобальную таблицу цветов вновь добавленные цвета будут заменены наименее удаленными цветами.

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

b1) каждый кадр можно превратить в изображение независимым образом; если кадр должен быть ассоциирован с предыдущим кадром для независимого превращения в изображение, то этот кадр будет ассоциирован с предыдущим кадром для независимого формирования изображения с унифицированным форматом, при этом способ обработки после отображения в расширении управления графикой может быть унифицирован следующим образом: в качестве цвета фона обязательным образом восстанавливают цвет области, в которой отображают графику.

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

Цвета из локальной таблицы цветов в процессе форматирования постепенно добавляют в глобальную таблицу цветов, в то время как каждый кадр превращается в изображение независимым образом; каждый форматированный компонент имеет только глобальную таблицу цветов, каждый кадр здесь можно превратить в изображение, при этом способ обработки единый.

Шаг 105: синтезируют форматированный компонент и предварительно синтезируют промежуточную картинку. Синтезирование на этом шаге можно дополнительно разделить на два шага:

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

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

b2) в каждой точке вставки синтезируют текущий кадр компонента и текущий кадр промежуточной картинки, а именно: вставляют текущий кадр компонента в текущий кадр промежуточной картинки.

В процессе синтезирования на шагах а2) и b2) главным является определение точки вставки в соответствии с релевантной информацией о кадрах компонента и о кадрах промежуточной картинки; к релевантной информации здесь относится: количество кадров компонента, длительность фиксации отображения каждого кадра компонента, количество кадров промежуточной картинки и длительность отображения каждого кадра промежуточной картинки. Общий способ определения точки вставки кадра заключается в следующем.

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

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