14

Web サイトから画像をダウンロードし、その画像に基づいてビットマップを作成しようとしています。次のようになります。

    public void test()
    {
            PostWebClient client = new PostWebClient(callback);
            cookieContainer = new CookieContainer();
            client.cookies = cookieContainer;
            client.download(new Uri("SITE"));
    }

    public void callback(bool error, string res)
    {
            byte[] byteArray = UnicodeEncoding.UTF8.GetBytes(res);

            MemoryStream stream = new MemoryStream( byteArray );
            var tmp = new BitmapImage();
            tmp.SetSource(stream);
    }

コールバック メソッドの最後の行で「不明なエラー」が表示されます。興味深い事実は、BitmapImage(new Uri("SITE")) を使用するとうまく機能するということです... (その URL から Cookie を取得したいので、このようにすることはできません。画像は jpg です。PostWebClient クラス-> http://paste.org/53413

4

4 に答える 4

3

以下のコードを試すことができます:

        private Bitmap LoadPicture(string url)
        {
            HttpWebRequest wreq;
            HttpWebResponse wresp;
            Stream mystream;
            Bitmap bmp;

            bmp = null;
            mystream = null;
            wresp = null;
            try
            {
                wreq = (HttpWebRequest)WebRequest.Create(url);
                wreq.AllowWriteStreamBuffering = true;

                wresp = (HttpWebResponse)wreq.GetResponse();

                if ((mystream = wresp.GetResponseStream()) != null)
                    bmp = new Bitmap(mystream);
            }
            finally
            {
                if (mystream != null)
                    mystream.Close();

                if (wresp != null)
                    wresp.Close();
            }
            return (bmp);
        }
于 2013-01-18T10:03:53.533 に答える
0

これを試して:

            string url ="http://www.google.ru/images/srpr/logo11w.png"
            PictureBox picbox = new PictureBox();
            picbox.Load(url);
            Bitmap bitmapRemote = (Bitmap) picbox.Image;

url - インターネット画像 、新しいインスタンス オブジェクト PictureBox を作成し、次にNOT ASYNCプロシージャを呼び出して URL から画像を読み込みます。画像が取得されると、画像がビットマップとして取得されます。また、スレッドを使用してフォームを操作し、他のスレッドでロードを呼び出し、deleate メソッドを渡して完了時に画像を取得することもできます。

于 2015-07-09T07:45:06.720 に答える