當從WebBrowser的DrawToBitmap()函數生成位圖時,在使用兩個相同大小的圖像時,爲什麼在某些情況下將位圖轉換爲字節數組時,您是否有不同大小的數組? 我使用的功能:相同大小位圖產生字節數組
public static byte[] ImageToByte(Image img)
{
ImageConverter converter = new ImageConverter();
return (byte[])converter.ConvertTo(img, typeof(byte[]));
}
從這裏有一個與我用的是圖像的問題。他們是不同的,我使用快照http://www.google.com和http://www.google.co.uk。它們都生成大小爲{Width = 833 Height = 500}的圖像。但是,字節數組的大小分別是20072和24368。
任何想法?
謝謝!
編輯
讓我補充一些更多的信息。圖像變成BMP。我會附加一些更多的C#給你,讓大家更加了解。
public void captureSnapshot(string url)
{
this.url = url;
var thr = new Thread(() =>
{
browser = new WebBrowser();
browser.DocumentCompleted += snapshotEventCompleted;
browser.Navigate(url);
Application.Run();
});
thr.SetApartmentState(ApartmentState.STA);
thr.Start();
}
public void snapshotEventCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
int pageHeight = browser.Document.Body.ScrollRectangle.Height;
int pageWidth = browser.Document.Body.ScrollRectangle.Width;
snapshot = new Bitmap(pageWidth, pageHeight);
browser.Size = new Size(pageWidth, pageHeight);
browser.ScrollBarsEnabled = false;
browser.DrawToBitmap(snapshot, new Rectangle(browser.Location.X, browser.Location.Y, pageWidth, pageHeight));
}
解決:
因此,原來的功能DrawToBitmap不支持。 womp
這是一個問題嗎?你知道圖像的格式(BMP/PNG/JPG)嗎?如果圖像被壓縮,那麼它可能會產生不同的尺寸... – mortb
不知道你在想什麼。你問爲什麼google.com和google.co.uk上的圖片不同?他們是不同的,因爲有人讓他們不同。 – Dialecticus
我會擔心,如果你有*一個*文件並將其轉換爲兩個字節數組,將它們兩個都轉換回來,並且這兩個圖像是不同的...... – mortb