Tôi đang cố gắng kết hợp hai tệp gif khác nhau vào một tệp.Trong C#, có thể đó là lỗi cho Image.SaveAdd, ai có thể giúp tôi giải quyết nó?
Trước tiên, tôi đã học được rất nhiều về định dạng gif. Và tôi biết giá trị thời gian trễ được đặt trong phần Mở rộng Điều khiển Đồ hoạ, là một khối tệp gif.
Tôi đã lưu gif đầu tiên và thiết lập giá trị FrameDelay, mã như sau:
ImageCodecInfo codeInfo = GetEncoder(ImageFormat.Gif);
System.Drawing.Imaging.Encoder saveEncoder = System.Drawing.Imaging.Encoder.SaveFlag;
EncoderParameters parameters = new EncoderParameters(1);
parameters.Param[0] = new EncoderParameter(saveEncoder, (long)EncoderValue.MultiFrame);
PropertyItem PropertyTagFrameDelay = img1.GetPropertyItem(0x5100);
PropertyTagFrameDelay.Value = new byte[] { 0x96, 0x00 };// this is the delay value 0x0096, means 1.5 second
img1.SetPropertyItem(PropertyTagFrameDelay);
PropertyItem LoopCount = img1.GetPropertyItem(0x5101);
LoopCount.Value = new byte[] { 0x00, 0x00 };// this means the gif loops endlessly
img1.SetPropertyItem(LoopCount);
img1.Save(@"c:\ddd.gif", codeInfo, parameters);
Sau đó, tôi cố gắng thêm hình ảnh khác như khung thứ hai.
parameters = new EncoderParameters(1);
parameters.Param[0] = new EncoderParameter(saveEncoder, (long)EncoderValue.FrameDimensionTime);
PropertyTagFrameDelay = img2.GetPropertyItem(0x5100);
PropertyTagFrameDelay.Value = new byte[] { 0x96, 0x00 };// this is the delay value 0x0096, means 1.5 second
img2.SetPropertyItem(PropertyTagFrameDelay);
Cuối cùng, tôi nên chấm dứt hình ảnh này.
parameters = new EncoderParameters(1);
parameters.Param[0] = new EncoderParameter(saveEncoder, (long)EncoderValue.Flush);
img1.SaveAdd(parameters);
Và tôi thấy rằng thời gian trễ khung thứ hai luôn 0.
là tôi đã cố gắng rất nhiều phương pháp, nhưng tôi không có ý tưởng để làm cho nó như 0x96.
Vì vậy, có gì sai với nó?
Nó chỉ đơn giản là không được hỗ trợ bởi bộ mã hóa gif được tích hợp vào GDI +. Bạn không thể thực hiện công việc này. –
thực sự? Có đúng không ?? –
OK, câu hỏi ngu ngốc, nhưng chỉ để chắc chắn: Bạn đang nói về GIF động, phải không? – RenniePet