Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2012.04.15;
Скачать: CL | DM;

Вниз

Как лучше хранить картинки используемые в программе?   Найти похожие ветки 

 
Baks   (2011-12-09 01:47) [0]

Есть две программы находящиеся всегда вместе в одной папке, которые используют несколько одинаковых картинок разного размера. Я создаю Img.Res файл и присоединяю к программам. Получается, что в каждой программе одинаковые картинки, которые увеличивают их размер. Хотелось бы чтобы картинки хранились в одном экземпляре и использовались обеими программами. Хранить их просто в папке с программами в виде *.bmp файлов не хочется. Можно например сделать DLL, в которой будут хранится картинки и загружаться оттуда обеими программами. Но хотелось бы как можно проще. Что бы вы посоветовали? Где лучше хранить эти картинки?


 
antonn ©   (2011-12-09 01:58) [1]

хранил бы сжатыми в ресурсе программы, и не парился


 
KilkennyCat ©   (2011-12-09 01:59) [2]


> Где лучше хранить эти картинки?

ты их уже хранишь в Img.Res, осталось запихнуть его в C:\ProgramData\.. (вин7 если)


 
Baks   (2011-12-09 02:04) [3]


> хранил бы сжатыми в ресурсе программы, и не парился


Не понял, как это?


> осталось запихнуть его в C:\ProgramData\.. (вин7 если)

Тоже не понял. у меня не win7. XP и D5


 
Rouse_ ©   (2011-12-09 02:07) [4]


> Можно например сделать DLL, в которой будут хранится картинки
> и загружаться оттуда обеими программами. Но хотелось бы
> как можно проще.

Ну, вообще-то, это самый простой и правильный вариант под твою задачу.


 
antonn ©   (2011-12-09 02:08) [5]


> Не понял, как это?

сжал бы файл zlib"ом и прикрепил в виде ресурса в программу


 
Rouse_ ©   (2011-12-09 02:09) [6]

Как вариант, если библиотека ничего не делает, кроме хранения картинок, то тогда храни картинки в ресурсах приложения "А", и само приложение "А" подгружай из приложения "Б" как библиотеку.


 
antonn ©   (2011-12-09 02:10) [7]


> Rouse_ ©   (09.12.11 02:09) [6]

чет мне кажется это про микроскоп и гвозди сказ =)


 
Rouse_ ©   (2011-12-09 02:15) [8]


>  antonn ©   (09.12.11 02:10) [7]
>
>
> > Rouse_ ©   (09.12.11 02:09) [6]
>
> чет мне кажется это про микроскоп и гвозди сказ =)

Ну воть те здрассь.
Что экзешник, что библиотека, является банальным файлом PE формата с секцией ресурсов.
Ково хрена можно использовать ресурсы из либы и нельзя из экзешника?
ЗЫ: открою секрет - экзешник тоже может экспортировать функции как и библиотека и сторонние приложения их могут безболезненно вызывать ;)


 
DiamondShark ©   (2011-12-09 02:15) [9]


> Что бы вы посоветовали?

Если это последняя проблема, оставшаяся в разработке приложения, то мы бы посоветовали не париться по мелочам.
Хранение как отдельных файлов требует НОЛЬ дополнительных усилий и имеет НОЛЬ рациональных агрументов против.


 
Baks   (2011-12-09 02:22) [10]


antonn
> сжал бы файл zlib"ом и прикрепил в виде ресурса в программу


Так ведь одни и теже в обеих!


> Rouse_


Библиотека ничего не делает. И не хотелось бы её создавать только ради картинок. А как лучше, в DLL или как написано в [6]. Если как в [6], то хотелось бы маленький примерчик как загрузить картинки из другого приложения?


DiamondShark
> Хранение как отдельных файлов


Да не красиво это разбрасывать все потроха.


 
Rouse_ ©   (2011-12-09 02:24) [11]


> то хотелось бы маленький примерчик как загрузить картинки
> из другого приложения?

Так-же как из билиотеки.

LoadLibrary + TResourceStream  на инстанс полученный от первой функции


 
Baks   (2011-12-09 02:27) [12]


> Rouse_ ©   (09.12.11 02:24) [11]


Спасибо, попробую.


 
DiamondShark ©   (2011-12-09 02:36) [13]


> Baks   (09.12.11 02:22) [10]
> Библиотека ничего не делает. И не хотелось бы её создавать
> только ради картинок.

Ресурсные ДЛЛ -- стандартная практика.


> Да не красиво это разбрасывать все потроха.

Если приложение ставится инсталятором, то неважно, сколько там файлов. Папка приложения в Program Files не для красоты, а для хранения.


 
Baks   (2011-12-09 02:42) [14]


> Папка приложения в Program Files не для красоты, а для хранения


Да, но это не значит, что туда никто не заглядывает.
И ещё, если например сделать переносимую версию без инсталлятора.


 
Rouse_ ©   (2011-12-09 02:51) [15]


> Да, но это не значит, что туда никто не заглядывает.

Врятли пользователь заявит рекламацию в связи с составом програмного пакета в Program Files


> И ещё, если например сделать переносимую версию без инсталятора.

Ну в данном случае не важно где хранятся ресурсы, ибо ты сам сказал что у тебя как минимум 2 файла. Врятли третий им помешает


 
DiamondShark ©   (2011-12-09 03:11) [16]


> Врятли пользователь заявит рекламацию в связи с составом
> програмного пакета в Program Files

Пользователи чрезвычайно изобретательны в заявлении претензий.

У меня была одна программа, скомпилированная в монолитный ехешник. Я очень гордился тем, что её не надо было инсталлировать, настраивать, устанавливать какие-то сторонние компоненты.
Один потенциальный пользователь отказался приобретать программу со странной мотивировкой: "Она у вас несерьёзная". Я попросил уточнить, что это значит. Функционал слабый? Интерфейс ламерский? Оказалось -- серьёзная программа -- это состоящая из 100500 файлов и инсталирующаяся не менее 16 минут. А тут какой-то один файл и никакой инсталляции с такими "серьёзными" визардами и прогрессами.


 
Rouse_ ©   (2011-12-09 03:43) [17]


>  DiamondShark ©   (09.12.11 03:11) [16]
> Пользователи чрезвычайно изобретательны в заявлении претензий.

Ну тут категорически соглашусь :)
Пользователи это наше все. Ну как пример, диалог с техподдержеой от 23 ноября  сего года (с внутреннего форума) :)

Картина маслом:

Звонит некая дама из Калининграда.
Говорит: Вот вчера я выбирала в параметрах сметы справочник, их там много было, а сейчас всего пять штук – почему так?
Отвечаю: Если тот же самый компьютер и та же самая программа – такого не бывает. Вы ведь сами ничего не удаляли?
Дама: У меня тут Москва что-то удаляла.
Я: Что значит – Москва удаляла?
Дама: Ничего не знаю, пришла сегодня на работу, и мне сказали, что Москва что-то удаляла на компьютере. Кстати, когда я сегодня захожу в программу, у меня каждый раз ошибка выскакивает, про инициализацию какого-то справочника. Исправьте мне, чтобы всё было как вчера.
Я: Послушайте меня ещё раз, внимательно. Я вам по телефону всё равно ничего исправить не смогу. Если кто-то работал на вашем компьютере – это и является причиной ваших проблем. Вам надо узнать, кто это был, и обратиться к нему.
Дама: Я ничего не знаю, мне сказали, что Москва удаляла…
Я (не дослушав): Москва – это город, а на компьютере работал конкретный человек.
Дама: А как мне узнать, кто?
Я: Спросите.
Дама: У кого?
Я: Ну кто-то ведь его видел? Не просто так с улицы зашли и ушли…
Дама: Я тут одна и ничего не знаю, ваша программа не работает, а вы вместо того чтобы исправить, какие-то вопросы задаёте!

Занавес…


 
antonn ©   (2011-12-09 08:42) [18]


> Ково хрена можно использовать ресурсы из либы и нельзя из
> экзешника?

я не говорил "нельзя" :)


> Baks   (09.12.11 02:22) [10]
>
>
> antonn
> > сжал бы файл zlib"ом и прикрепил в виде ресурса в программу
>
>
> Так ведь одни и теже в обеих!

ну и что? очень большие картинки?


> DiamondShark ©   (09.12.11 02:36) [13]
>
>
> > Да не красиво это разбрасывать все потроха.
>
> Если приложение ставится инсталятором, то неважно, сколько
> там файлов. Папка приложения в Program Files не для красоты,
>  а для хранения.

имхо, если ресурсы не предназначены для редактирования пользователем и являются частью функционала (ну уж не знаю где там картинки используются, мож битовые маски или qr-коды), то стоит позаботится чтобы юзер их не смог удалить/отредактировать. А лежащие рядом bmp в "открытом виде" не изменяемые во время работы программы (ну и вообще) считаю "ленью" программиста убрать их с глаз долой. тоже имхо.


 
Думкин ©   (2011-12-09 09:16) [19]


> Rouse_ ©   (09.12.11 03:43) [17]

Непорочная дева!! Вах.

- Оно как-то само забеременилось!


 
oldman ©   (2011-12-09 09:24) [20]


> Получается, что в каждой программе одинаковые картинки,
> которые увеличивают их размер. Хотелось бы чтобы картинки
> хранились в одном экземпляре и использовались обеими программами.


И при переносе одной из двух программ на другой комп помнить про "общие" картинки?
Что, так уж "увеличивают размер"?
Что, так уж критично?


 
Anatoly Podgoretsky ©   (2011-12-09 11:25) [21]

> Baks  (09.12.2011 01:47:00)  [0]

Еще один испугался размера


 
Anatoly Podgoretsky ©   (2011-12-09 11:26) [22]

> Baks  (09.12.2011 01:47:00)  [0]

И где критерий "лучше"


 
Anatoly Podgoretsky ©   (2011-12-09 11:26) [23]

> Baks  (09.12.2011 02:04:03)  [3]

ХР и все сели в тупик


 
Anatoly Podgoretsky ©   (2011-12-09 11:30) [24]

> DiamondShark  (09.12.2011 03:11:16)  [16]

А ведь предупреждали же, что программы менее какого то размера, примерно 200
мб - это не серьезные программы и корпорациями неохотно покупаются


 
Anatoly Podgoretsky ©   (2011-12-09 11:32) [25]

> Rouse_  (09.12.2011 03:43:17)  [17]

Тебе очень повезло, что подробности кой какие сказала, а могла бы просто -
не работает, и я не программист разбирайтесь сами


 
Baks   (2011-12-09 13:56) [26]

Всё-таки наверно лучше оставить Img.RES в каждой программе. Хоть они и вместе должны быть (это главная программа и редактор к ней), но вдруг и вправду перенесут одну из программ.


 
QAZ   (2011-12-10 20:07) [27]

имаджелисты лучше хранить в вертикальном варианте а не горизонтальном
а куда запихать - дело религии


 
sniknik ©   (2011-12-10 23:07) [28]

> и я не программист разбирайтесь сами
из любимого (у меня уже коллекция)
- Ваша программа не работает!
- А что говорит? Т.е. ошибку какую пишет?
- Что то про интернет. (в смысле отсутствует)
- Ну тогда все правильно, программа является клиентом общей сети, у вас работает через интернет. В требованиях к программе это написано. (жирным шрифтом)
- Слушайте, не морочьте мне голову вашими программистскими сказками, я у вас программу купил? Значит должно работать. Исправляйте!


 
Jeer ©   (2011-12-11 00:15) [29]


> - Слушайте, не морочьте мне голову вашими программистскими
> сказками, я у вас программу купил? Значит должно работать.
>  Исправляйте!


Буквально на днях, диалог на совещании с двумя зам.министрами (реальность):

ЗМ1 - з.м. МинЭконом;
ЗМ2 - з.м. МинИнфо;
ТС - понятно, хто;
СП - специалисты ( потенциальные пользователи )

ЗМ2 - начнем обсуждение, ТС - доложите ситуацию:
ТС - сложная, тяжелая инф.система (ИС), требуется обучение СП, требуются фин.средства;
ЗМ2 - если так, поищем средства;
ЗМ1 - а, что там сложного ? Почитать инструкцию и вперед.
ТС - Многофункциональная ИС ( OLAP, DataMining, ExpresAnalysis, Forecast) требует значительных затрат (финансовых и временных) на инсталляцию и обучение СП;
ЗМ1 - Я посмотрел - очень сложный интерфейс, надо рекомендовать разработчику изменить его до..( 2..5) кнопок;
TC - Это федеральная разработка компании "Прогноз", если нужен "личный" интерфейс - это будет заказная разработка со всеми вытекающими;
ЗМ1 - Я сам IT, что Вы тут мне советуете ? Любую программу можно изменить.
TC - Не вопрос, изложите свое мнение в письме разработчику федеральной программы ГАС "Управление";
ЗМ2 - Соберемся через две недели и чтобы разработчики приехали к нам с презентацией;

P.S.
ГАС спущена сверху для беспрекословного исполнения и повлиять на разработчика может только термоядерная бомба, а может и не одна :)


 
Германн ©   (2011-12-11 00:32) [30]


> Библиотека ничего не делает. И не хотелось бы её создавать
> только ради картинок.

Вот мне интересно.
"Что делает" Cards.dll на моём компьютере? И почему я до сих пор не удалил её как ненужную?
:)


 
Jeer ©   (2011-12-11 01:02) [31]


> "Что делает" Cards.dll на моём компьютере?


Дает возможность поиграть в покер и.. не выиграть :)


 
Германн ©   (2011-12-11 02:27) [32]


>  Jeer ©   (11.12.11 01:02) [31]

Мне очень жаль, что "обстоятельства" не позволили  мне так легко распоряжаться самим собой.


 
2222   (2011-12-11 08:52) [33]


> Rouse_ ©   (09.12.11 03:43) [17]

И такой народ принимают на работу?... мда...


 
sniknik ©   (2011-12-11 11:35) [34]

> И такой народ принимают на работу?... мда...
и еще хуже... у него хоть что-то сказали, сказали, что кто-то правил, причина известна, а часто эти сведения просто скрывают. - "вчера работало, сегодня включаю не работает. разберитесь. ничего не делала!". причем искренне считает, что ничего... а то что удалила часть файлов винды, и почистила систему какой то "чистилкой реестра", не в счет (забыто сразу), потому что это же не по программе, типа не причем, значит ничего... , это место для игрушки освобождала (причем на диске C, то что есть еще D куда все ставится ей невдомек). дама считается админом (других все одно нет).

еще хуже когда понимают, что делали, и скрывают намеренно и "прячут следы"...
было к примеру, правда уже очень давно.
проблема - иногда неверную дату в отчетах дает, и если работаешь в это время, то данные "падают" в "прошлый век".
были долгие разбирательства, скандал, хотели отказаться от программы, и требовать неустойку, бучу поднял местный админ.
причина - этот самый админ, обычно вечерами (но бывало оставалось на весь следующий день), резался в "крякнутую" игру у которой кряк работал так, откатывал системную дату на "прошлый век" запускал игру "из себя", по завершении игры возвращал обратно. играл на сервере...
так вот когда скандал был уже в полном разгаре админ удалил игру. потер сейвы, и типа "я ничего не менял, оно само ломается". но все одно нашли... повезло, кряк что-то писал в системный журнал, на смену дат, с именем программы...
админа уволили.
реакция у него была поразительная, он типа обиделся, "а вы не могли как-то по человечески, потихоньку", и это после скандала им поднятого, и поставленной дилеммы, либо находим в чем проблема, либо теряем клиента. свои действия он конечно считал нормальными.


 
Омлет ©   (2011-12-12 09:26) [35]

Однажды, пользователи из Астаны звонили, жаловались: "Почему ваша программа стала вся на английском?" После долгих разбирательств выяснилось, что они запускают pdf с диска, и эдоб ридер показывает пользовательское соглашение на английском языке.



Страницы: 1 вся ветка

Текущий архив: 2012.04.15;
Скачать: CL | DM;

Наверх




Память: 0.57 MB
Время: 0.009 c
15-1323462605
Юрий
2011-12-10 00:30
2012.04.15
С днем рождения ! 10 декабря 2011 суббота


2-1324723705
igorium
2011-12-24 14:48
2012.04.15
StringList - есть ли ограничения на размер массива?


1-1291676222
Gu
2010-12-07 01:57
2012.04.15
Заглавное меню


15-1323894603
Юрий
2011-12-15 00:30
2012.04.15
С днем рождения ! 15 декабря 2011 четверг


1-1291528318
Дмитрий С
2010-12-05 08:51
2012.04.15
ObjComAuto.TObjectDispatch и методы с 3+ вариант-аргументами.