我發現的所有代碼都給了我相同的結果:一堆精確的相框。含義:它給我一個第一幀的列表,重複X次。我使用的.gif有30幀,所以我得到30幀的第一幀,而不是30幀。如何在幀中分割.gif文件?
public static Image[] GetFramesFromAnimatedGIF(Image IMG)
{
List<Image> IMGs = new List<Image>();
int Length = IMG.GetFrameCount(FrameDimension.Time);
for (int i = 0; i < Length; i++)
{
IMG.SelectActiveFrame(FrameDimension.Time, i);
IMGs.Add(IMG);
}
return IMGs.ToArray();
}
我在想什麼?我看到的所有代碼給第一幀重複了X次。
這是應該看起來(使用網頁)。看看每個框架是如何不同的?
這是個什麼樣子,我保存該陣列內的每個機架上的文件夾位置(一堆等於幀)後:
PS:是的,這是一個.gif我正在使用的圖像。
更新:問題似乎是當我在OpenFileDialog中讀取文件時,因爲它工作如果我通過代碼傳遞我的.gif文件。那麼如何在OpenFileDialong中讀取動畫gif?謝謝。
這可能會有所幫助:http://stackoverflow.com/questions/951786/wpf-how-to-extract-frames-from-multiframe-images-tif-gif?rq = 1 – aisa
@aisa謝謝,但現在事實證明,如果我通過代碼傳遞我的.gif,它就可以工作。所以問題在於OpenFileDialog,因爲它正在讀取我的動畫.gif作爲一個簡單的.gif文件。 – soulblazer
您是否嘗試過使用['GifBitmapEncoder'](https://msdn.microsoft.com/en-us/library/system.windows.media.imaging.gifbitmapencoder%28v=vs.90%29.aspx)從WPF? – dbc