我遇到了一些奇怪的問題,我不知道這是否是預期的行爲或錯誤。位圖類正在通過填充空字符來改變輸入文件流
我只是隨機創建了一個文件流,它不是一個圖像流,一些其他文件流如pdf/doc等。文件流以可寫模式打開。它發生了,我的另一部分代碼,由於某些原因,將文件流的位置設置爲超出實際文件流長度的較大值。
然後我打電話位圖的構造器通過這個文件流,並存儲在磁盤上實際文件被改變,文件的大小變得過於龐大。當我打開修改後的文件並進行檢查時,我注意到,當文件流的位置超出其長度時,Bitmap類將填充空字符。文件大小正在等於我設置的位置值。然後我注意到它發生在我通過的任何文件中,包括圖像文件。
下面是代碼:
Bitmap bitmap = null;
FileStream fs = new FileStream(@"C:\\sampleFile.ext", FileMode.Open, FileAccess.ReadWrite);
try
{
fs.Position = fs.Length * 100;
bitmap = new Bitmap(fs);
}
catch (Exception)
{
if (bitmap != null)
bitmap.Dispose();
fs.Dispose();
}
我的疑問是,這是已知的行爲呢?
因此,問題中'位圖'的重點是所有的紅色鯡魚? –