Узнать высоту картинки с минимальными потерями памяти и времени - C#

Узнай цену своей работы

Формулировка задачи:

Доброго времени. Передо мной встала задача: узнать высоту картинки, если известен её адрес в интернет. Допустим Основная задача: после всех действий мы должны получить высоту в int и это всё не должно занимать ни байта на HDD. Т.е. картинку нужно либо удалить сразу же, либо не загружать вовсе. С первым всё просто.
new WebClient().DownloadFile(http, "photo.jpg");
int height = System.Drawing.Image.FromFile("photo.jpg").Height;
На втором при удалении появляется exception о том, что данный файл используется. Конечно хорошо бы было меня тыкнуть носом в код, где я забыл вызвать метод Dispose(); Но всё же, уважаемые гуру, хотел бы усложнить задачу. Картинку загружать нельзя. Наверное можно получить какие-либо данные из WebResponse.Headers. Теперь немного о том, как я обрабатываю картинку
string photo = "http://www.cyberforum.ru/images/cyberforum_logo.jpg";
BitmapImage bi = new BitmapImage();
            bi.BeginInit();
            bi.DecodePixelWidth = 200;
            bi.CacheOption = BitmapCacheOption.OnLoad;
            bi.UriSource = new Uri(photo);
            bi.EndInit();
из bi можно получить Height и PixelHeight. Проблема в том, что они не правильные (равны Width). Может быть у кого-то получится исправить? Наверное всё понятно расписал. Заранее спасибо.

Решение задачи: «Узнать высоту картинки с минимальными потерями памяти и времени»

textual
Листинг программы
byte[] image = new WebClient().DownloadData(http);
MemoryStream ms = new MemoryStream(image);
Image bitmap = new Bitmap(ms);
int width = bitmap.Width;

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.889 из 5
Похожие ответы