讀取一個影片檔案,然后關閉檔案,(這樣不會妨礙其他圖片編輯軟體對該檔案的修改保存,比較友好。)然后賦值給一個bitmap物件,將影片拆分成一個位圖陣列,當把位圖陣列中的一幀影像再對原bitmap變數重新賦值,并修改了bitmap的顏色資訊后,竟然會影響到位圖陣列對應的那一幀,怎么會這樣呢,不是應該獨立了嗎,如何能夠不影響?部分代碼如下。重新賦值的代碼不在這里,在別的事件中。
byte[] imgbyte = File.ReadAllBytes(FileName);
bmp= (Bitmap)Image.FromStream(new MemoryStream(imgbyte));//全域bitmap物件變數bmp
FrameDimension fd = new FrameDimension(bmp.FrameDimensionsList[0]);
int count = bmp.GetFrameCount(fd);
Frames = new Bitmap[count];
for (int i = 0; i < count; i++)
{
bmp.SelectActiveFrame(fd, i);
Frames[i] = new Bitmap(bmp.Width, bmp.Height);
Graphics g = Graphics.FromImage(Frames[i]);
g.DrawImage(bmp, new Rectangle(0, 0, bmp.Width, bmp.Height));
}
uj5u.com熱心網友回復:
比如在對話框中選擇第0幀圖片,加載到主界面中,在主界面中把小鳥肚子淺黃色部位清除掉,當再次打開對話框時,第0幀小鳥肚子相應的部位也被清除掉了,但是我并沒有對陣列Frames重新賦值。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/268055.html
標籤:C#
上一篇:請教有什么開發手機APP比較好
