サーバーから画像をダウンロードする C# アプリケーションに取り組んでいます。現在、jpeg 画像では正常に動作していますが、透明な png 画像には透明部分の代わりに白いパッチが追加されます。以下のコードを試しました:
public Image DownloadImage(string _URL)
{
Image _tmpImage = null;
try
{
// Open a connection
System.Net.HttpWebRequest _HttpWebRequest = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(_URL);
_HttpWebRequest.AllowWriteStreamBuffering = true;
// You can also specify additional header values like the user agent or the referer: (Optional)
_HttpWebRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)";
_HttpWebRequest.Referer = "http://www.google.com/";
// set timeout for 20 seconds (Optional)
_HttpWebRequest.Timeout = 40000;
_HttpWebRequest.Accept = "image/png,image/*";
// Request response:
System.Net.WebResponse _WebResponse = _HttpWebRequest.GetResponse();
// Open data stream:
System.IO.Stream _WebStream = _WebResponse.GetResponseStream();
// convert webstream to image
_tmpImage = Image.FromStream(_WebStream);
// Cleanup
_WebResponse.Close();
_WebResponse.Close();
}
catch (Exception _Exception)
{
// Error
Console.WriteLine("Exception caught in process: {0}", _Exception.ToString());
return null;
}
return _tmpImage;
}
URLからダウンロードした画像は白いパッチが付いています。透明部分の代わりに白いパッチを追加していると思いますが、どうすればそれを止めることができますか。画像で遊ぶことなく、画像を直接検出して適切な形式でダウンロードする方法はありますか。
私はこれを試しました_HttpWebRequest.Accept = "image/png,image/*"; png画像を受け入れてアスペクト比を維持する必要がありますが、うまくいかないようです。
どんな助けでも大歓迎です。
ありがとう、サントッシュ・ウパダヤイ。