Имя: Пароль:
1C
1С v8
Размер в пикселях
0 quest1C
 
31.07.13
09:47
Читаю файлы jpg из каталога. Требуется обработать их по-разному, исходя из их размера в пикселях. Как определить размер файла jpg в пикселях?
1 Широкий
 
31.07.13
09:59
через командную строку IrfanView можно размер получить
2 quest1C
 
31.07.13
10:06
(1)Пример бы..
3 Широкий
 
31.07.13
10:08
Ключ /info сохраняет информацию о изображениях в файл. Можно натравить на весь каталог.
Потом файл с информацией парсишь RegExp и вытягиваешь нужные данные
4 Капитан О
 
31.07.13
10:09
5 Широкий
 
31.07.13
10:11
Пример получения формата файла и размера

    WshShell=Новый COMОбъект("WScript.Shell");
    
    КоманднаяСтрока=""""+ИрфанВьюИФ+""" "+КаталогОбразов+"*.tmp"" /silent /info="""+КаталогОбразов+"info.txt""";
    WshShell.Run(КоманднаяСтрока, 0, -1);
    
    РВыражение=Новый COMОбъект("VBScript.RegExp");
    РВыражение.Global=Истина;
    РВыражение.Pattern="\[([\da-zA-Z\-]+)\.tmp\][\s\S]+?Compression = ([\s\S]+?)\b[\s\S]+?Disk size = [\s\S]+?\(([\s\S]+?) Bytes\)";

    ЧтениеТекста=Новый ЧтениеТекста(КаталогОбразов+"info.txt");
    ДанныеФайла=ЧтениеТекста.Прочитать();
    
    НаборВхождений=РВыражение.Execute(ДанныеФайла);
    Для Каждого ВхождениеСтроки Из НаборВхождений Цикл
        ВхождениеСтрокиП=ВхождениеСтроки.SubMatches;
        ИмяФайла=ВхождениеСтрокиП.Item(0);
        РазмерФайла=Число(ВхождениеСтрокиП.Item(2));
        
        ФорматФайлаБМП=(ВхождениеСтрокиП.Item(1)="None");
        
        Если (ФорматФайлаБМП И РазмерФайла<1200000) Или (Не ФорматФайлаБМП И РазмерФайла<400000) Тогда
            ПометитьОбразОбработанным(ИмяФайла,"Допустимый размер");
            Продолжить;
        КонецЕсли;
        
        Попытка
            ПереместитьФайл(КаталогОбразов+ИмяФайла+".tmp",КаталогОбразов+ИмяФайла+?(ФорматФайлаБМП,".bmp",".jpg"));
        Исключение
        КонецПопытки;  
    КонецЦикла;
6 quest1C
 
31.07.13
10:14
Всем спасибо.