![]()  | 
	
 
  | 
		
			
  | 	
	
	
		
		|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны | 
![]()  | 
	
	
| 
		 | 
	Опции темы | Поиск в этой теме | Опции просмотра | 
| 
		 
			 
			#1  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Здравствуйте!!!  
		
	
		
		
		
		
		
	
		
		
	
	
	Требуется помощь в решении задачи! Некоторое время назад, начал писать приложение, для ведения домашней видеотеки. Приложение читает данные из файла и запоминает их в список, далее отображает этот список в виде таблицы на форме, выполняются различные действия (сортировка, удаление поиск и т. д.) Все это реализовал, но захотел добавить изображение к каждой записи списка, и чтоб оно было параметром этой записи. Долго пытался, как то реализовать эту задачу, но получилось только так: Загружаю изображение в Image считываю попиксельно Canvas и заношу в двумерный массив, который в свою очередь является элементом записи, потом это сохраняется в файл (в файле хранятся данные различных типов + массив цветов). При отображении выбранной, из таблицы записи, в image отображается массив который был считан из файла. Отображение реализовал в попиксельном считывание цвета из массива. Это все работает но крайне медленно, чтоб отобразить изображение размером 150х150 пикселей задержка в пол секунды(может чуть меньше), если начать быстро просматривать записи приложение повисает. Пробовал сохранить все BMP изображение в свой файл, но не нашел Информации как это реализовать. Пожалуйста подскажите в какую сторону копать, что почитать или можно как то по другому решить проблему!  | 
| 
		 
			 
			#3  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 А просто Image.Picture.SaveToFile не помогает? 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#4  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Копай в сторону Баз Данных. В них можно и записи хранить, и иконки, и при этом всё работает без задержек. 
		
	
		
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#5  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Спасибо большое, за быстрый ответ! Это очень похоже на то, что мне нужно, покрайней мере пища для размышлений появилась! 
		
	
		
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#6  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Цитата: 
	
 Мне не просто нужно сохранить изображение в файл, а добавить к файлу, в котором уже есть данные, по типу базы данных.  | 
| 
		 
			 
			#7  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Цитата: 
	
  | 
| 
		 
			 
			#8  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Можно и без готовых компонент БД, но это странное самограничение - отказаться от использования удобного инструмента. 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	Тогда делаете просто свою библиотеку картинок. Делается два файла, один содержит картинки, лучше их в JPG формате там хранить, а второй содержит информацию о начале данных картинки и их длине, можно еще описание каждой картинки туда вбухать, но это уже необязательно.  | 
| 
		 
			 
			#9  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Цитата: 
	
 Дело в том что я пишу Лабараторную работу по САОД, и мне необходимо ограничится от готовых решений и написать "свой велосипед". А идея впринципе в этом и заключалась, только картинки хранятся в одном файле с описанием! Все изображения имеют одинаковый размер! Просто я не знаю, как сохранять картинку (возможно в какой то своей структуре, которую нужно получить из имеющегося изображения) в файл, но это пол беды, потом это нужно считать из файла и привести обратно к JPG, BMP или ... Цитата: 
	
 Как упаковать несколько картинок в один файл?? По этому поводу, что можно почитаь??  | 
| 
		 
			 
			#10  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Можно сочинить весьма простой "велосипед". Изображения хранятся в одном подкаталоге, а текстовые в другом, с тем же названием. Выбираем изображение и проверяем подкаталог с текстом, если такой же файл найден, делаем нужные операции. Расширения у файлов, естественно свои. 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#11  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 А использовать TFileStream как в примере не подходит? 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#12  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Цитата: 
	
 Очень даже подходит, тока я пока не совсем разобрался, что я могу использовать в своем приложении. Как работает твой пример я понял. И возник вопрос, а как работать не с TFileStream, а с TMemoryStream или это не совсем то что мне нужно??? Просто не могу разобраться с этим классом и кажется ,что я "подхватил не то напровление". Цитата: 
	
 Я уже много раз думал про это, есть еще куча вариантов, да и впринципе я могу уже приступить к рихтованию кода приложения, чтоб закончить, но просто уже стало интересно как же всетаки реализовать мою проблему. Я прекрасно понимаю, что мое - это далеко не оптимальное решение задачи, -но все же, не хочется отступать, ведь решение должно быть, и оно крутится гдето рядом, но ....  | 
| 
		 
			 
			#13  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Еще вопрос - в какой формат можно присвоить данные из TMemoryStream? 
		
	
		
		
		
		
		
	
		
		
	
	
	Это, чтоб можно было использовать его в моей записи, как то отредактировать и сохранить в файл.  | 
| 
		 
			 
			#14  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 По суте мне нужно в какую то переменную занести полное содержание файла картинки. Например если открыть изображение в текстовом редакторе получается огромное колличество символов - вот эти символы мне и надо дописать к моему файлу. Покрайней мере мне так кажеться... 
		
	
		
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#15  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Если файлы Bmp одинакового размера то можно ещё попробовать так обьявить структуру: 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	Код: 
	Const R = 100433; // Размер рис. Type MyStrukt = Record // Наша структура для записи в свой файл S: String[32]; // имя рисунка n: Integer; // ещё чтото // и т. д. скоко надо параметров к рисунку. Bmp: Array [0..R] of Byte; // массив с байтами рисунка. end; Код: 
	var Ms: TMemoryStream; Str: MyStrukt; begin Ms:= TMemoryStream.Create; Ms.Write(Str.Bmp, R); Image1.Picture.Bitmap.LoadFromStream(Ms); Ms.Free; end; Записать рис. в нашу структуру тоже легко. Просто переписываем побайтно из рис. в массив Bmp: Array [0..R] of Byte; Дома буду соченю пример если непонятно а то щяс на работе.  |