|
v7: Ломается галерея картинок в обработке | ☑ | ||
---|---|---|---|---|
0
MadDAD
06.12.17
✎
11:37
|
Может кто сталкивался? На своей машине (Win7 x64) во внешнюю обработку добавляю кнопки с картинками. Сохраняю. Все открывается и работает ок.
Та же обработка в терминалке на сервере (Srv 2008 R2 x64) при попытке открыть в предприятии говорит "Unexpected file format." При открытии в конфигураторе "Неправильный формат файла." и файл остается заблокированным. Стал копать. При сохранении на сервере галерея картинок получается больше. Если разобрать и собрать GComp'ом проблема сохраняется. Если разобрать, подставить галерею из обработки сохраненной на сервере и собрать обратно, то все ок. Платформа абсолютно идентичная. Версия MFC42 одинаковая. На машине другого разработчика (Win7 x64) тоже не открывается. |
|||
1
Ёпрст
06.12.17
✎
11:37
|
[:]||||||||||||||||||[:]
|
|||
2
Ёпрст
06.12.17
✎
11:38
|
Поставь пароль на поделку свою, сохрани. Потом убери пароль.
|
|||
3
Ёпрст
06.12.17
✎
11:38
|
Иначе в контейнер не помещаются картинки вообще.
|
|||
4
MadDAD
06.12.17
✎
11:41
|
(3)(2) Не, не катит. Пробовал первым делом. Сами картинки в ert присутствуют.
|
|||
5
Ёпрст
06.12.17
✎
11:47
|
вся галерея там в бмп формате без заголовка, насколько я помню.
|
|||
6
Ёпрст
06.12.17
✎
11:47
|
можно посмотреть, чем они там отличаются
|
|||
7
MadDAD
06.12.17
✎
12:09
|
(6) С форматом галереи я разобрался. Даже тулзу написал. Это CImageList выгруженный в файл. Читается при помощи ImageList_Open(). Отличаются они тем, что на моей машине сама картинка этого имиджлиста сложена в иконках по одной в строке, а в варианте с сервера - по 4 в строке.
И вот хз почему так происходит. |
|||
8
MadDAD
06.12.17
✎
13:01
|
(0) Отвечу сам себе. Не все красивости одинаково полезны.
Причина была в том, что у меня рядом с 1cv7s.exe лежал манифест (1cv7s.exe.manifest), в котором было указано использовать ComCtl32.dll версии 6.0. А на сервере такого манифеста не было и там используется версия постарше, которая сохраняет ImageList в немного другом формате. Разница в (6) - иконки в большом битмапе по разному уложены. И в конце после битмапа есть еще пара десятков непонятных байт. В давние времена манифест был добавлен для того, чтобы 1С отображалась на экране с красивыми закругленными кнопками и прочими стилями Windows. Это такой способ включить поддержку тем в старых приложениях. После удаления манифеста моя платформа стала так же ругаться на эти обработки. |
|||
9
MadDAD
06.12.17
✎
13:10
|
В результат всех изысканий родилась утилита, которая умеет распаковывать галерею, собирать её из больших файлов и из Gallery.bmp после GComp.
https://cloud.mail.ru/public/JDf3/fSmeMzCmi Понимает так же ImageList в новом формате. |
|||
10
Ёпрст
06.12.17
✎
13:11
|
ого, я уже и не помню, зачем манифест применял, парочка валяется в каталоге.
|
|||
11
MadDAD
06.12.17
✎
13:36
|
https://cloud.mail.ru/public/GZWt/dJGgmFwGA
Новая версия. Старая открывает в новом формате и записывает тоже. В этой версии поправил, записывает в старом формате. |
|||
12
Ёпрст
06.12.17
✎
13:36
|
спсб, пригодится
|
|||
13
MadDAD
06.12.17
✎
14:28
|
Совсем новая версия.
Добавил ключ -r. Конвертировать без промежуточной разборки - сборки галереи. https://cloud.mail.ru/public/J4ju/s1DhjEbXa Пользоваться так: Для исправления ошибки с версией берем FAR и плагин DocFileBrowser. Вытаскиваем поток Gallery. Запускаем утилу: GalleryTool -r Gallery Gallery.bak должна написать что нашла сколько-то картинок и записала в в Gallery новую галерею. Складываем Gallery обратно в обработку. Для компиляции галереи из распакованного GComp исходника: GalleryTool -c "[путь]\PictureGallery" Gallery Должна написать, что собрала Gallery из 100500 картинок. Она сами их отресайзит в размер 80х80 и положит на белый фон. Сделает Gallery.head, Gallery.bmp и Gallery.tail. А так же поток Gallery целиком. Дальше можно собрать GComp или положить новый Gallery обратно в собранный MD как в первом варианте. Для разборки на отдельные иконки: Вытаскиваем поток Gallery. Запускаем утилу - GalleryTool -d Gallery "[Каталог]" Разберет все на иконки 80x80 и сложит в каталог [Каталог]. Так же можно собрать поток Gallery из Gallery.bmp ( ключ -f), но привязки к реальным картинкам не будет, т.к. неоткуда её взять. Думаю будет полезно тем, кто разбирает/собирает конфу при помощи GComp и меняет картинки. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |