|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
26.05.2012, 23:41 | #31 |
Пользователь
Регистрация: 14.04.2012
Сообщений: 41
|
Rin -спасибо ! попробую)
|
26.05.2012, 23:44 | #32 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
|
26.05.2012, 23:50 | #33 |
Пользователь
Регистрация: 14.04.2012
Сообщений: 41
|
это размер файла минус длинна строки
|
26.05.2012, 23:51 | #34 | |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
Цитата:
Нет, если читать файл побайтно вместо того, чтобы по сканлиниям, то, возможно, задержки от того, что файл читается с конца, а не с начала, и не будут слишком заметными. Я бы читал файл с начала, переписывая сканлинии целиком в буфер, в котором сформировал бы образ BMP-файла нужного размера. И уже этот файл отображал бы в нужном месте формы. |
|
26.05.2012, 23:58 | #35 |
Пользователь
Регистрация: 14.04.2012
Сообщений: 41
|
мне важно что бы занималось как можно меньше памяти( требование такое) и способ подходил для всех бмп!Зачем сканить всю строку в 12859 пикселей если вывести нужно будет всего 665?
|
27.05.2012, 00:02 | #36 |
Пользователь
Регистрация: 14.04.2012
Сообщений: 41
|
var
f:TMemoryStream; r,g,b:byte; begin f:=TMemoryStream.Create; f.LoadfromFile('1.bmp'); f.seek(3,soEnd);// читать с конца (если указать soBeginning вместо soEnd, то // перейдем на 4 байт от начала, т.к. первый байт под номером "0") f.Read(b,1); f.Read(g,1); f.Read(r,1); PaintBox1.Canvas.Pixels[0,0]:=RGB(r,g,b); f.Free; end; в этом коде куда писать номер байта который нужен? и что означает число 3 в seek? |
27.05.2012, 00:02 | #37 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
Кто сказал "всю строку"?
Просто вместо 1995 чтений по 1 байту нужно сразу читать фрагмент файла длиной 1995 байт. Т.е. "всю строку", но не исходного изображения, а требуемого фрагмента. |
27.05.2012, 00:07 | #38 |
Негодник
Форумчанин
Регистрация: 10.11.2009
Сообщений: 880
|
Этот не юзайте:
Код:
Если помог, проси поставить минус. Будь оригинален!
|
27.05.2012, 00:11 | #39 |
Негодник
Форумчанин
Регистрация: 10.11.2009
Сообщений: 880
|
Это означает, что перейдем на 3 байт с конца файла.
Код:
Код:
Если помог, проси поставить минус. Будь оригинален!
|
27.05.2012, 00:17 | #40 |
Пользователь
Регистрация: 14.04.2012
Сообщений: 41
|
а как тогда это загнать в цикл зная размеры нужного фрагмента?
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Открыть файл, разделить ячейку на 1000, сохранить файл, закрыть файл. Как? | Ник Харди | Microsoft Office Excel | 7 | 30.01.2012 18:47 |
Не заливается на ФТП большой файл | ramzes777 | Работа с сетью в Delphi | 3 | 26.10.2011 10:19 |
Разбить большой файл на более мелкие | Sat_Kelman | Microsoft Office Excel | 4 | 18.03.2011 13:06 |
отдавать большой файл с фтп | TaTT DoGG | PHP | 5 | 03.07.2009 10:34 |
ActiveX не хочет читать большой файл | Miklek | Общие вопросы Delphi | 0 | 02.04.2009 11:55 |