set the quality of GIF

26 visualizaciones (últimos 30 días)
高祥 袁
高祥 袁 el 21 de Nov. de 2021
Comentada: 高祥 袁 el 22 de Nov. de 2021
x = 0:0.1:10;
y = sin(x);
fig = figure;
lines = animatedline('Color', 'red');
xlim([0 10]); ylim([-1 1]);
frames(100) = struct('cdata', [], 'colormap', []);
filename = 'filename.gif';
for i = 1:100
addpoints(lines, x(i), y(i));
drawnow;
frames(i) = getframe(fig);
[A, map] = rgb2ind(frame2im(frames(i)), 256);
if i == 1
imwrite(A, map, filename, 'gif', 'DelayTime', 1/30)
else
imwrite(A, map, filename, 'gif', 'DelayTime', 1/30, 'WriteMode', 'append');
end
end
How to change the quality of this GIF. Since the capacity is large, I want to reduce the capacity.

Respuesta aceptada

DGM
DGM el 21 de Nov. de 2021
GIF has no "quality" parameter. For the most part, you have three choices:
  1. Make the geometry smaller.
  2. Make the color table shorter.
  3. Use frame optimization.
Options 1 and 2 should be pretty obvious. Either use imresize() or specify a shorter CT when calling rgb2ind().
Option 3 isn't really practical within the scope of MATLAB and imwrite(). Write the image and use some external tool (ImageMagick, GIMP, etc) to optimize it.
  1 comentario
高祥 袁
高祥 袁 el 22 de Nov. de 2021
thank you, I'll try those ways.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Modify Image Colors en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by