imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 04.10.2005, 15:34     # 1
Nand
Newbie
 
Аватар для Nand
 
Регистрация: 17.05.2004
Адрес: Екатеринбурге
Сообщения: 22

Nand Путь к славе только начался
Question получить свойства графического файла

Необходимо получить свойства графического файла (jpeg, png, gif). В windows они находятся: свойства-сводка-дополнительно {ширина; высота}. Возможно ли это сделать с помощью WSH?
Nand вне форума  
Старый 04.10.2005, 17:15     # 2
/7y3uK
Advanced Member
 
Аватар для /7y3uK
 
Регистрация: 09.03.2004
Адрес: толстозадая Москва
Сообщения: 498

/7y3uK Реально крут(а)/7y3uK Реально крут(а)/7y3uK Реально крут(а)/7y3uK Реально крут(а)
без понятия про шелл, но программно можно - только у каждого графического файла эта инфа в разных смещениях лежит... надо спецификацию читать...
А где получить то надо? откуда и куда?
__________________
В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах
/7y3uK вне форума  
Старый 04.10.2005, 18:08     # 3
crazydown
Guest
 
Сообщения: n/a

читай документацию по интересующему тебя формату графического файла, обычно вся информация о ширине, высоте, etc... находится в заголовке файла
 
Старый 04.10.2005, 18:51     # 4
Nand
Newbie
 
Аватар для Nand
 
Регистрация: 17.05.2004
Адрес: Екатеринбурге
Сообщения: 22

Nand Путь к славе только начался
Не хочется сильно усложнять задачу "читай документацию ". Рыл в сторону WSH objFile.???? не могу найти имя свойства объекта (если такое существует?)
Nand вне форума  
Старый 04.10.2005, 19:33     # 5
ЕЖ
::VIP::
 
Регистрация: 19.03.2004
Сообщения: 1 329

ЕЖ Бог с наворотамиЕЖ Бог с наворотами
ЕЖ Бог с наворотамиЕЖ Бог с наворотами
Ну можно написать что-то типа
Цитата:
Set p = LoadPicture("pic.jpg")
WScript.Echo p.Width
Только выдаваемая через p.Width и p.Height ширина/высота должна преобразовываться в соотвествии с разрешением экрана.
ЕЖ вне форума  
Старый 04.10.2005, 20:10     # 6
Nand
Newbie
 
Аватар для Nand
 
Регистрация: 17.05.2004
Адрес: Екатеринбурге
Сообщения: 22

Nand Путь к славе только начался
Цитата:
Сообщение от ЕЖ
Ну можно написать что-то типа
Только выдаваемая через p.Width и p.Height ширина/высота должна преобразовываться в соотвествии с разрешением экрана.
Как должна преобразовываться w/h ? при размерах изображения 1024х768 выдает 27093 и 20320?
Если сменить разрешение экрана, то все одно выдает эти же значения.
Делитель получается 26,458 ?

Если windows видит эти размеры (в свойствах) то наверное из нее их как то можно достать?

Последний раз редактировалось Nand; 04.10.2005 в 20:30.
Nand вне форума  
Старый 05.10.2005, 13:04     # 7
ЕЖ
::VIP::
 
Регистрация: 19.03.2004
Сообщения: 1 329

ЕЖ Бог с наворотамиЕЖ Бог с наворотами
ЕЖ Бог с наворотамиЕЖ Бог с наворотами
Я немного не правильно выразился. Зависимость не от разрешения экрана, а от dpi выставленного видеорежима.

Ширина/высота картинки возвращается в так называемых хайметриках (HiMetric), где 1 Hm = 1/1000 см. Как известно 1 дюйм (inch) = приблизительно 2.54 см = 2540 Hm. Стандартно видеорежим выставлен в 96 dpi (вне зависимости от разрешения).

Тогда получается что формула преобразования в пикселы будет
Цитата:
w = p.Width/2540*96
Может потребоваться округление до целого, но это зависит только от точности преобразования дюймов в сантиметры (2.54...).

Конечно может показаться что это всё какие-то извраты, но не забывай что система в принципе разрабатывалась и ориентировалась не на простую работу с изображениями, а ещё и для печати на бумаге, а оттуда и следуют все эти полиграфические заморочки.

Вообще на VB для этого есть функции типа ScaleX(p.Width, vbHimetric, vbPixels), но не знаю, будут ли они работать в WSH.
ЕЖ вне форума  
Старый 05.10.2005, 19:02     # 8
npoka3a
Guest
 
Сообщения: n/a

а можно не циклица на "голом" WSH, а найти КОМ объект, который может то что надо.
 
Старый 06.10.2005, 18:53     # 9
Nand
Newbie
 
Аватар для Nand
 
Регистрация: 17.05.2004
Адрес: Екатеринбурге
Сообщения: 22

Nand Путь к славе только начался
Цитата:
npoka3a:
не циклица на "голом" WSH
- это замечание конкретизирует мой вопрос!!
Можно ли это сделать на php, perl - (задача для решается web) тоже скока не искал в талмудах....

Цитата:
ЕЖ:
Зависимость не от разрешения экрана, а от dpi
А можно ссылку - где про это можно почитать?

в windows ф-ция StgOpenStorageEx - может кто нибудь дать пример?

Последний раз редактировалось Nand; 06.10.2005 в 19:27.
Nand вне форума  
Старый 07.10.2005, 12:52     # 10
npoka3a
Guest
 
Сообщения: n/a

http://www.php.net/manual/ru/ref.image.php
imagesx -- Get image width
imagesy -- Get image height

getimagesize

(PHP 3, PHP 4 , PHP 5)
getimagesize -- Get the size of an image
Description
array getimagesize ( string filename [, array &imageinfo] )



The getimagesize() function will determine the size of any GIF, JPG, PNG, SWF, SWC, PSD, TIFF, BMP, IFF, JP2, JPX, JB2, JPC, XBM, or WBMP image file and return the dimensions along with the file type and a height/width text string to be used inside a normal HTML IMG tag.

If accessing the filename image is impossible, or if it isn't a valid picture, getimagesize() will return FALSE and generate an error of level E_WARNING.

Замечание: Support for JPC, JP2, JPX, JB2, XBM, and WBMP became available in PHP 4.3.2. Support for SWC exists as of PHP 4.3.0 and TIFF support was added in PHP 4.2.0

Замечание: JPEG 2000 support was added in PHP 4.3.2. Note that JPC and JP2 are capable of having components with different bit depths. In this case, the value for "bits" is the highest bit depth encountered. Also, JP2 files may contain multiple JPEG 2000 codestreams. In this case, getimagesize() returns the values for the first codestream it encounters in the root of the file.

Замечание: The getimagesize() function does not require the GD image library.

Returns an array with 4 elements. Index 0 contains the width of the image in pixels. Index 1 contains the height. Index 2 is a flag indicating the type of the image: 1 = GIF, 2 = JPG, 3 = PNG, 4 = SWF, 5 = PSD, 6 = BMP, 7 = TIFF(intel byte order), 8 = TIFF(motorola byte order), 9 = JPC, 10 = JP2, 11 = JPX, 12 = JB2, 13 = SWC, 14 = IFF, 15 = WBMP, 16 = XBM. These values correspond to the IMAGETYPE constants that were added in PHP 4.3.0. Index 3 is a text string with the correct height="yyy" width="xxx" string that can be used directly in an IMG tag.

Пример 1. getimagesize (file)
<?php
list($width, $height, $type, $attr) = getimagesize("img/flag.jpg");
echo "<img src=\"img/flag.jpg\" $attr alt=\"getimagesize() example\" />";
?>

URL support was added in PHP 4.0.5

Пример 2. getimagesize (URL)
<?php
$size = getimagesize("http://www.example.com/gifs/logo.gif");

// if the file name has space in it, encode it properly
$size = getimagesize("http://www.example.com/gifs/lo%20go.gif");

?>
 


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 21:53.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.