для этой помощи и попросите его добавить свои комментарии, если таковые необходимы для ниже решения. Я все еще исследую. В случае каких-либо дальнейших вопросов по этой проблеме, я вернусь.
я есть ниже фрагмент, который создает GIF. Этот фрагмент взят из подсказокВот, Фрагмент создает пустой кадр, и кадры имеют неравномерную задержку между ними. Обратите внимание на задержку между небытием и первым кадром, а затем быстро появляется второй кадр. Почему это происходит?
Мне пришлось создать изображение определенного размера перед рукой, потому что палочка не изменяет размер холста в соответствии с последовательностью максимального размера. Я должен найти способ разобраться и с этим.
def render(self):
# map anim gif
wand = Image2(width=205,height=223)
#create frames
for each_frame in self._tree_dot_frames:
img = Image2(blob=each_frame)
print('Image width: {} height: {}'.format(img.width,img.height))
wand.sequence.append(img)
#set frame rate
for cursor in range(len(self._tree_dot_frames)):
with wand.sequence[cursor] as frame:
print('sequence width: {} height: {}'.format(frame.width,frame.height))
frame.delay = 100
#wand.merge_layers('merge')
wand.format = 'gif'
wand.save(filename='animated.gif')
print('No of frames: {} gif width: {} height: {}'.format(len(wand.sequence),wand.width,wand.height))
self._tree_dot_blob = wand.make_blob()
return self._tree_dot_blob
Выход:
Ширина изображения: 175 высота: 136
Ширина изображения: 205 высота: 223
ширина последовательности: 205 высота: 223
ширина последовательности: 175 высота: 136
Количество кадров: 3 GIF ширина: 205 высота: 223
PS: У меня есть другая проблема с подобным фрагментомВот, не путать с этим вопросом.
Обновление 1:
Ниже вывод, если я создаю объект палочки без предопределенного размера. Анимация выглядит нормально, но холст имеет первую последовательность (которая меньше), поэтому окончательный GIF обрезается, теперь полностью отображается 2-я последовательность.
#wand = Image2(width=205,height=223)
wand = Image2()
Обновление 2:
Ниже приведен вывод, если с указанным выше изменением я также передаю последовательность в обратном порядке, чтобы теперь жезл принял 1-й размер последовательности. Теперь окончательный размер GIF в порядке, но, как вы можете видеть, больший кадр всегда остается в фоновом режиме, что является новой проблемой.
#create frames
for each_frame in reversed(self._tree_dot_frames):
img = Image2(blob=each_frame)
print('Image width: {} height: {}'.format(img.width,img.height))
wand.sequence.append(img)
Пожалуйста, помогите, поскольку я застреваю, если иду в любом из вышеперечисленных направлений.
Желаемое решение будет тот, который принимает максимальный размер поданных кадров и вмещает все кадры в этом размере / что-то, что должно сделать, как показано ниже (я показал только первые 2 кадра данных в задаче выше)