Узнать высоту картинки с минимальными потерями памяти и времени - C#
Формулировка задачи:
Доброго времени. Передо мной встала задача: узнать высоту картинки, если известен её адрес в интернет. Допустим
Основная задача: после всех действий мы должны получить высоту в int и это всё не должно занимать ни байта на HDD. Т.е. картинку нужно либо удалить сразу же, либо не загружать вовсе.
С первым всё просто.
На втором при удалении появляется exception о том, что данный файл используется.
Конечно хорошо бы было меня тыкнуть носом в код, где я забыл вызвать метод Dispose(); Но всё же, уважаемые гуру, хотел бы усложнить задачу.
Картинку загружать нельзя. Наверное можно получить какие-либо данные из WebResponse.Headers.
Теперь немного о том, как я обрабатываю картинку
из bi можно получить Height и PixelHeight. Проблема в том, что они не правильные (равны Width). Может быть у кого-то получится исправить?
Наверное всё понятно расписал. Заранее спасибо.
new WebClient().DownloadFile(http, "photo.jpg"); int height = System.Drawing.Image.FromFile("photo.jpg").Height;
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();
Решение задачи: «Узнать высоту картинки с минимальными потерями памяти и времени»
textual
Листинг программы
byte[] image = new WebClient().DownloadData(http); MemoryStream ms = new MemoryStream(image); Image bitmap = new Bitmap(ms); int width = bitmap.Width;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д