0 / 0 / 3
Регистрация: 06.01.2011
Сообщений: 183
1

Хранение графических файлов(ЖПЕГ) в переменной

05.03.2017, 19:32. Показов 793. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день. Есть следующая ситуация :
- программа по УРЛ загружает множество картинок с сайтов записывает их в указанный каталог на ЖД под своими собственными именами. все очень наглядно, можно просмотреть, если нужно, картинки
- на текущем этапе уже не нужно просматривать картинки, и значит не нужно записывать их на ЖД. лучше сразу в ГлобПерем.

Вопрос : какого типа нужно использовать переменную, учитывая что :
- файлы графические(бинарные?)
- размер файла от 1 до 1000 кб
- число файлов - тысячи
- общий объем загрузки может состовлять ?сотни мегабайт
- желательно чтобы метод был универсальный(веб-страницы то же чтоб можно было сохранять)
- не было потенциальной возможности сбоя(из за типа переменной) при хранении данных в ОЗУ
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.03.2017, 19:32
Ответы с готовыми решениями:

Программа для просмотра графических файлов
Необходимо реализовать что-то на подобие Open Dialoga . Слева дерево каталогов сделал, но...

Разработка программы просмотра графических файлов ._
Доброго времени. Мне задали курсовую работу в программной среде Delphi. В работе необходимо...

Хранение rtf текста в переменной
Мне обязательно надо хранить rtf текст в поле объекта. Для этого пытался использовать поле...

Форматы графических файлов. Компоненты отображения графической информации
Вычислить n значений функции y=f(x) на отрезке и построить график функции. Вычисленные значения...

13
5393 / 4321 / 1060
Регистрация: 29.08.2013
Сообщений: 27,128
Записей в блоге: 3
05.03.2017, 19:38 2
Цитата Сообщение от Pcrepair Посмотреть сообщение
Вопрос : какого типа нужно использовать переменную
никакого

Запросом GET дергаем картинку с сайта и сохраняем ее
Лучше всего это распараллелить в несколько потоков
0
0 / 0 / 3
Регистрация: 06.01.2011
Сообщений: 183
05.03.2017, 20:58  [ТС] 3
дергаем, дергаем. уже выдернули и много. тыщи картинок. ну и как сохранить тыщи картинок типа как можно в TStringList хранить тыщи строк, каждая представляет собой строковую переменную(ну была раньше) содержащая допустим кодвеб-страницы. хранить все тыщи не нужно. нужно провести анализ каждой картинки, но не сразу, а только когда оне все(тыщи) будут загружены, по некоторым критерия и выбрать тольку одну, коею потом и сохранить в указанном каталоге

вот так более понятно о чем идет речь?
0
5393 / 4321 / 1060
Регистрация: 29.08.2013
Сообщений: 27,128
Записей в блоге: 3
05.03.2017, 21:20 4
Цитата Сообщение от Pcrepair Посмотреть сообщение
вот так более понятно о чем идет речь?
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
procedure TForm1.Button1Click(Sender: TObject);
var
  stream:TMemoryStream;
  jpeg:TJPEGImage;
begin
  stream:=TMemoryStream.Create();
  IdHTTP1.Request.ContentRangeEnd:=9999999;
  IdHTTP1.Get('http://www.aaaa.ru/****.jpg',stream);
  stream.Position:=0;
  jpeg:=TJPEGImage.Create;
  jpeg.LoadFromStream(stream);
  Image1.Picture.Bitmap.Assign(jpeg);
  jpeg.Free;
  stream.Free;
end;
0
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
06.03.2017, 01:34 5
памяти у вас гораздо меньше, чем дискового пространства.
Сохраните нужные в другой папке, а остальные удалите
0
884 / 586 / 179
Регистрация: 28.02.2017
Сообщений: 2,359
Записей в блоге: 1
06.03.2017, 02:03 6
Любые файлы, хоть jpg хоть html - это массив байт, получаете его в Stream, например в TMemoryStream.
Вопрос что вам в итоге надо и почему вдруг незя сохранять...
0
northener
06.03.2017, 02:15
  #7

Не по теме:

Привет вам, о Pcrepair!
Давно вас не было видно на наших форумах. Мы уже ломали головы над тем сделали ли вы вашу суперпуперпоисковую программу? Похоже что всё-таки не сделали.

0
0 / 0 / 3
Регистрация: 06.01.2011
Сообщений: 183
06.03.2017, 16:05  [ТС] 8
Image1.Picture.Bitmap.Assign(jpeg); - это совсем не нужно, можно даже сказать за бесплатно

stream:=TMemoryStream.Create(); - а туда можно всунуть тыщю картинок одну за другой а потом в цикле ФОР извлечь поштучно для анализа?

памяти у меня много - 128гб ОЗУ, надеюсь хватит

сохранить можно но уже ненужно, анализ картинок переходит от оператора к алгоритму и по этому Image1.Picture.Bitmap.Assign(jpeg) - лишнее

ну не все файлы одинаковы. строки(символы) это одно, графика немного другое, какой потомок TStrings универсален для хранения чего угодно? хоть кто то работал с разнообразными файлами?

а вот голову ломать не надо. это вредно для здоровья. программа PSE работает с 2013, улучшается по мере необходимости, уже скоро с ней смогут работать даже обычные юзвери.
0
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
06.03.2017, 16:35 9
Цитата Сообщение от Pcrepair Посмотреть сообщение
stream:=TMemoryStream.Create(); - а туда можно всунуть тыщю картинок одну за другой а потом в цикле ФОР извлечь поштучно для анализа?
тогда уж лучше создать список из тысячи TMemoryStream, которые потом в цикле WHILE поштучно анализировать, уничтожая ненужны и сохраняя достойные

Добавлено через 3 минуты
Цитата Сообщение от Pcrepair Посмотреть сообщение
какой потомок TStrings универсален для хранения чего угодно?
Да хоть TStringList
0
пофигист широкого профиля
4732 / 3167 / 858
Регистрация: 15.07.2013
Сообщений: 18,248
07.03.2017, 02:34 10
Цитата Сообщение от Pcrepair Посмотреть сообщение
а вот голову ломать не надо. это вредно для здоровья. программа PSE работает с 2013
А хоть какую-нибудь ссылочку можно?
0
0 / 0 / 3
Регистрация: 06.01.2011
Сообщений: 183
07.03.2017, 07:02  [ТС] 11
А хоть какую-нибудь ссылочку можно?
сцылочку на что?
0
884 / 586 / 179
Регистрация: 28.02.2017
Сообщений: 2,359
Записей в блоге: 1
07.03.2017, 08:04 12
Любой файл это последовательность нулей и единиц. Без никакого немного другого.

Слепить из кучи файлов один сплошной файл, аля консолевская copy? Нафига? Чтоб путаться где какой был?
0
0 / 0 / 3
Регистрация: 06.01.2011
Сообщений: 183
07.03.2017, 09:32  [ТС] 13
вот тут ты не допонял
не надо лепить из тыщи файлов один
надо засунуть в ОЗУ тыщи файлов, чтобы потом сравнить их между собой
0
884 / 586 / 179
Регистрация: 28.02.2017
Сообщений: 2,359
Записей в блоге: 1
07.03.2017, 17:39 14
Это вы так описали, что хотите засунуть всё в одно.

Тогда массив или лист из дочерних классов TStream, например из TMemoryStream:
Delphi
1
{ var } Files: Array of TMemoryStream;
Delphi
1
{ var } Files: TObjectList<TMemoryStream>;
0
07.03.2017, 17:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.03.2017, 17:39
Помогаю со студенческими работами здесь

Форматы графических файлов. Компоненты отображения графической информации
1. Вычислить n значений функции y=f(x) на отрезке и построить график функции. Вычисленные...

Хранение нескольких файлов в одном
Предисловие : Во многих игры и программах, все ресурсы(картинки,видео,звуки и т.п.) недоступны. ...

Хранение графических файлов в БД
Всем привет, создал БД в которой есть поле типа &quot;вложение&quot;. Как программно добавить изображение в...

Хранение графических файлов в БД и работа с ними
База данных файл *.sdf. Подключаюсь к нему через SqlCe Базу данных создавал из Visual Studio 2008....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru