Имя: Пароль:
1C
1С v8
Уменьшение размера картинок(фото товаров), уже загруженных в базу 1с
,
0 Ar-Bus
 
15.05.13
16:30
Доброго времени суток, уважаемые спецы! Предлагается если не предложить готовое решение, то хотя бы поразмышлять над такой проблемой:
конфигурация Розница, ред.2. Пользователь по незнанию или неопытности сделал значительное количество фоток товаров и, не проконсультировавшись со специалистами, загрузил эти фотки в базу 1с. В результате база выросла с 400МБ до 4,8ГБ!!! Сразу скажу, документооборот довольно скромный, т.е. размер базы зависит исключительно от кол-ва картинок. Размер каждой картинки достигает 3-4МБ.

Теперь вопрос: необходима готовая программа или обработка для того, чтобы сжать эти фото внутри базы.
Или обработка, которая переберет фото каждого элемента номенклатуры и сожмет его до приемлемых размеров (исходный размер -4мб, получаемый размер - около 350КБ.)
Сталкивался кто-нибудь с такой задачей? Какие можете предложить способы решения данной проблемы?
1 mikecool
 
15.05.13
16:32
выгрузить картинки в папку
найти прогу для ресайза
обработать
загрузить
2 Ranger_83
 
15.05.13
16:32
FastStone
3 samozvanec
 
15.05.13
16:33
выгрузи, запомни имена, обработай, загрузи обратно
4 Fish
 
15.05.13
16:34
(0) Навскидку: ищешь прогу, которая умеет сжимать картинки из командной строки, а дальше всё просто: выгрузил, сжал, загрузил.
5 zladenuw
 
15.05.13
16:34
так у картинки же есть

Картинка (Picture)
Преобразовать (Convert)
6 zladenuw
 
15.05.13
16:34
7 samozvanec
 
15.05.13
16:35
(5) там скорее всего ДД у него
8 Fish
 
15.05.13
16:36
(5) И толку? Преобразование формата - это не изменение размера.
9 Ar-Bus
 
15.05.13
16:41
картинки загружены в формате jpg
10 Ar-Bus
 
15.05.13
16:46
ну я понял так: перебираю номенклатуру, выгружаю существующие картинки в файлы, в качестве имен файлов использую код номенклатуры. Затем выгруженные файлы сжимаю и произвожу загрузку сжатых файлов в номенклатуру, используя коды номенклатуры, записанные в именах файлов
11 zladenuw
 
15.05.13
16:47
(8) ну не знаю у меня при изменение формата изменила его размер. был 154 кб, стал 100 кб
12 zladenuw
 
15.05.13
16:48
(10) зачем выгружать еще и в файл. прочитал. а потом сжимай и записывай обратно. выгружать ненадо
13 Ar-Bus
 
15.05.13
16:49
(12) а как программно сжать картинку? Знаешь? Я вот не знаю. Поэтому сначала хочу выгрузить в файлы, затем сжать полученные фото спец.прогой, а уж затем загрузить обратно
14 Fish
 
15.05.13
16:52
(11) С какого на какой формат менял? Естественно, если ты BMP преобразуешь в JPG, то размер уменьшится. Но у ТС и так уже JPG - ему надо менять разрешение картинки, а не формат.
15 zladenuw
 
15.05.13
16:52
16 zladenuw
 
15.05.13
16:53
(14) я из jpg  в png
17 Утконос
 
15.05.13
16:53
делов на 15 минут

выгружаешь все картинки в нужную папку
сжимаешь базы
проверяешь размер
заходишь в папку с картнками
открываешь с помощью Майкрософт Оффисе Пиктуре
показать все картинки
изменить картнику
изменить размер -указываешь размер
сохранить
загружаешь в базу
18 zladenuw
 
15.05.13
16:54
(13)
МассивФайловСКартинками = НайтиФайлы("c:\Картинки из моей базы\", "*.JPEG", ЛОЖЬ);
Для Каждого ФайлКартинки Из МассивФайловСКартинками Цикл
   СтрокаGUID = Прав(ФайлКартинки.ИмяБерРасширения, 36);
   НовыйGUID = Новый УникальныйИдентификатор(СтрокаGUID);
   СпрСсылка = Справочники.ХранилищеДополнительнойИнформации.ПолучитьСсылку(НовыйGUID);
   СпрОбъект = СпрСсылка.ПолучитьОбъект();
   ВыбранноеФото = Новый Картинка(ФайлКартинки.ПолноеИмя, Ложь);
   СпрОбъект.Хранилище = Новый ХранилищеЗначения(ВыбранноеФото, Новый СжатиеДанных());
   СпрОбъект.Записать();
КонецЦикла;

Хотя можно и без сохранения. копируешь картинку. у тебя уже пример есть и сохраняешь ее уже сжатую
19 Ar-Bus
 
15.05.13
17:35
(13) темная голова, одним словом! Подскажите, как записать картинку в файл? У меня есть реквизит номенклатуры "ФайлКартинки", тип-СправочникСсылка.НоменклатураПрисоединенныеФайлы
Как правильно использовать данный метод Записать():
ВыбраннаяКартинка.Записать("c:\temp\"+ИмяКартинки.Имя+"."+Строка(ВыбраннаяКартинка.Формат()));

Если файлКартинки получаю как объект, то ругается, что слишком много фактических параметров на метод Записать()
20 Ar-Bus
 
15.05.13
17:45
ВыбраннаяКартинка.Записать("c:\temp\"+ИмяКартинки.Имя+"."+Строка(ВыбраннаяКартинка.Формат()));

Какой должен быть тип у ВыбраннаяКартинка???
21 zladenuw
 
15.05.13
17:52
Картинка  = Новый Картинка("C:\1.jpg");
     Картинка2 = Картинка.Преобразовать(ФорматКартинки.PNG);
     Картинка2.Записать("C:\2.PNG");
22 5 Элемент
 
15.05.13
17:56
23 Злопчинский
 
16.05.13
03:15
хм.. нахрена в базе картиник размером в 350Кб..? Только если печатать в полный лист А4.
у меня обычный размеркартинки 310-на-340 пикселей, от 7 до 15 кб. хватает чтобы внятно разглядеть на экране и впихнуть в эксель в строку с товаром.
24 Ar-Bus
 
16.05.13
11:58
(22) картинки в файлы сохранил, сжал до нужных размеров. Как теперь загрузить назад в базу сжатые файлы?