|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
05.03.2017, 19:26 | #1 |
Форумчанин
Регистрация: 04.01.2011
Сообщений: 260
|
Хранение графических файлов(ЖПЕГ) в переменной
Добрый день. Есть следующая ситуация :
- программа по УРЛ загружает множество картинок с сайтов записывает их в указанный каталог на ЖД под своими собственными именами. все очень наглядно, можно просмотреть, если нужно, картинки - на текущем этапе уже не нужно просматривать картинки, и значит не нужно записывать их на ЖД. лучше сразу в ГлобПерем. Вопрос : какого типа нужно использовать переменную, учитывая что : - файлы графические(бинарные?) - размер файла от 1 до 1000 кб - число файлов - тысячи - общий объем загрузки может состовлять ?сотни мегабайт - желательно чтобы метод был универсальный(веб-страницы то же чтоб можно было сохранять) - не было потенциальной возможности сбоя(из за типа переменной) при хранении данных в ОЗУ |
05.03.2017, 20:25 | #2 |
Участник клуба
Регистрация: 09.11.2007
Сообщений: 1,761
|
А чем Вам родной для Delphi класс TJPEGImage не угодил?
|
05.03.2017, 20:51 | #3 |
Форумчанин
Регистрация: 04.01.2011
Сообщений: 260
|
хорошо бы сделать более универсальный метод. на удаленную перспективу. чтоб еще раз не изобретать велосипед
|
05.03.2017, 21:00 | #4 |
Участник клуба
Регистрация: 09.11.2007
Сообщений: 1,761
|
Тогда напишите зачем Вам вообще эти JPEG файлы в программе.
|
06.03.2017, 14:33 | #5 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,550
|
Вот заведем переменную размером в 1Тб - и все вопросы решим. Ну и что, что в компе ОЗУ 1Гб? Мы же храним не в ОЗУ, а в переменной !
|
06.03.2017, 14:39 | #6 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
А переменная - динамический массив например. И что с ними делать?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
06.03.2017, 18:53 | #7 |
Форумчанин
Регистрация: 04.01.2011
Сообщений: 260
|
спасибо за внимание, еще раз, прям сейчас :
- многопоточные загрузчики, под управление диспетчера потоков, грузят в указанный каталог на ЖД графические файлы разных типов и размеров - по окончании загрузки имена файлов записываются в список ТСтрингЛист - в цикле ДЛЯ файлы вызываются по имени и анализируются по указанным параметрам (размер файла, тип файла, ширина-высота файла) и ИМЕНА файлов сортируются в списке по правилам - файл с первым именем в списке(с самым большим индексом) вызывается, обрабатывается и сохраняется в другом каталоге с другим именем - в первом каталоге все файлы удаляются Следующий цикл загрузки картинок, и так тыщи циклов мне не нравится первый пункт, запись файлов на ЖД. оно совершенно не нужно. вопрос в какой потомок ТСтрингс(или куда еще) и как записать множество самых разных типов файлов. но только не надо догадки тут постить. если нет реального опыта, писать не надо. |
06.03.2017, 19:10 | #8 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Ну в TList или TObjectList, или в массив, это смотря как будешь работать с этим списком объектов. Почему объектов - а как будешь размеры например выдергивать? По хакерски или со свойств объекта? Так что навряд ли без TJpegImage или аналогов для других типов картинок. На счет не надо постить догадки - надо вопрос правильно задавать, правильный вопрос как минимум половина ответа. Ну и сам понимаешь - память у компа ограничена ))
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 06.03.2017 в 19:14. |
06.03.2017, 19:37 | #9 |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
TMemoryStream
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
06.03.2017, 20:07 | #10 |
Пользователь
Регистрация: 09.08.2015
Сообщений: 62
|
А зачем их загонять в переменную?
Ты говоришь загружает фалы с инента, допустим через httpsen: HTTP.HTTPMethod('GET',ссылка_на_кар тинку) Все, она уже в памяти, дале можно ее скинуть на диск: HTTP.Document.SaveToFile ('имя_файла'). Зачем тогда сохранять загруженные файлы на диск, чтобы потом их обратно загонять в память? Вот прямо в потоке и обрабатывай что надо - и сохраняй куда нужно
Завидую крокодилам! Они даже ходят лежа!
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Хранение данных в переменной | serauto79 | PHP | 17 | 28.06.2015 20:07 |
Эскизы графических файлов в OpenPictureDialog | Loveb | Компоненты Delphi | 4 | 22.11.2010 11:03 |
Лента графических файлов | бел | Помощь студентам | 1 | 13.04.2009 10:15 |
Конвертирование графических форматов файлов | ALEX_RAS | Помощь студентам | 21 | 02.11.2008 17:46 |
Открытия графических файлов | Kocapb | Общие вопросы C/C++ | 3 | 01.12.2007 19:11 |