Тема: AHK: Получение ширины-высоты изображения перед скачиванием
Имеется ли возможность перед загрузкой изображения, получить информацию о его разрешении?
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Имеется ли возможность перед загрузкой изображения, получить информацию о его разрешении?
Вообще нет, но что вы имеете в виду под «загрузкой»?
Можно скачать только хедер изображения и из него достать размеры.
А они там всегда есть?
По спецификации должны быть.
Xdensity 2 Horizontal pixel density. Must not be zero
Ydensity 2 Vertical pixel density. Must not be zero
А, я думал, ты говоришь о заголовках веб-запроса. Так-то придётся спецификации всех типов изображений разбирать.
А, я думал, ты говоришь о заголовках веб-запроса.
А разве такие есть заголовки?
В смысле, спрашиваешь, существуют ли у веб-запроса заголовки?
Ну да.
Хотя вроде может и можно где-то width (deprecated) получить, но я такого не встречал.
https://developer.mozilla.org/en-US/doc … ders/Width
Если ты спрашиваешь, есть ли в заголовках размеры, то я не в курсе, поэтому и уточнил вначале. В любом случае, чтобы они там были, их должен кто-то туда намеренно поместить.
Поэтому, единственно верный способ, скачивать хедер файла и парсить.
Обычно требуется пару конкретных расширений.
Сам когда-то подобные заказы лепил.
Наверно. Но такие ухищрения могут потребоваться, как я представляю, в случае, если нужно скачать много изображений, либо выбрать нужные из большого количества. Не уверен, что здесь тот случай.
Под «загрузкой» имелось в виду скачивание. Планировалось узнавать размеры и пропускать мелкие изображения.
Хедеры пробовал, там вроде нет инфы о разрешении:
HTTP := ComObjCreate("WinHTTP.WinHTTPRequest.5.1")
HTTP.Open("GET", "https://sun7-8.userapi.com/s/v1/ig2/rNfXvTrnO4MpfrjkdUnXW6uu2FJ8EaMyiMcK4D0kiCV4x0_LF3DeGk5ahewM4vlfda0neMUuz4AoohTYahbeTOoU.jpg?size=50x50&quality=95&crop=0,0,1079,1079&ava=1", 1)
HTTP.SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36")
HTTP.Send()
HTTP.WaitForResponse()
ResponseHeaders := HTTP.getAllResponseHeaders()
MsgBox % ResponseHeaders
Так у вас в адресе размер указан: 50x50.
Только на этом сайте так.
Если файлы небольшие и их немного, то проще скачивать целиком и узнавать размеры через WinApi. В ином случае можно скачивать частично, только заголовок. Нужно будет узнать размер заголовка/заголовков требуемых форматов изображений.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться