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

Вниз

delphibase.endimus.ru   Найти похожие ветки 

 
Шишкин Илья ©   (2005-01-15 11:35) [0]

Почему вдруг на http://delphibase.endimus.ru/ добавление новых записей в базу временно приостановлено? Я тут старался, делал модуль, хотел поделиться с народом... обидно :(


 
Шишкин Илья ©   (2005-01-15 11:36) [1]


{
Модуль для записи и чтения любых файлов из 24-разрядных BMP (Стеганография)

К примеру, в изображение 1024x768 можно записать файл размером больше мегабайта (!), а точнее 1152кб.
При этом размер файла BMP не изменится ни на один байт!

Единственный минус - низкая скорость работы.
При записи и чтении, много времени уходит на размещении битов (!)
информации в массиве BitArray:array of byte (убожество).
Получается, что массив в памяти занимает в 8 раз больше места, чем исходный файл.
Также влияет на скорость то, что при работе с TBitmap я использовал метод Canvas.Pixels[x,y].
Если у кого-нибудь будет желание, то реализуйте тоже самое через ScanLine.

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

P.S. Прощу прощения за возможные ошибки... у меня всегда была проблема с русским языком :)

Автор: Шишкин Илья aka Hint
E-mail: ilya.86@mail.ru

Функции:

function GetErrorText:String; //Получение информации о последней ошибке
function GetErrorCode:integer; //Получение кода последней ошибки

function BMPCheck(FileName:string):boolean; //Проверка файла на пригодность к хранению информации
function BMPGetSize(FileName:string;BitCount:integer):int64; //Получение размера хранилища

function BMPReadFile(BMPFile:String; ResultFile:String):boolean; //Чтение из файла BMP
function BMPWriteFile(BMPFile:String; ResultFile:String; SFile:String; BitCount:byte):boolean; //Запись в файл BMP

BitCount - число бит для записи от 1 до 4 (в один Pixel записывается BitCount*3 бит)

}


 
TUser ©   (2005-01-15 11:38) [2]

На Эндимусе, в основном, более простые штуки лежат. А твой модуль положи здесь - мне (и думаю не только мне) будет интересно посмотреть на алгоритмы этого дела.

PS. Низкая скорость работы, случайно, не из-за Canvas.Pixels?


 
Шишкин Илья ©   (2005-01-15 11:40) [3]

Именно из-за Canvas.Pixels (я об этом как раз написал). Код конечно не особо удачный... но по крайней мере работает...


 
Шишкин Илья ©   (2005-01-15 11:43) [4]

Кому интересно
http://www.mgul-vt.fatal.ru/BMPRW.pas


 
TUser ©   (2005-01-15 11:56) [5]


> Шишкин Илья ©   (15.01.05 11:40) [3]

Используй ScanLine. ИМХО, раз задача расчетная, - то возможно сильно проше создать массив TColor"ов и скопировать туда битмап, там все преобразовать, и скопировать обратно. А при расчетах использовать битмапы (в системном понимании) и переключаться в режим ядра для обработки каждого пикселя - некаширно. Копирование - через ScanLine.
+ на этом сайте есть статья про быстрый битмап.


 
Шишкин Илья ©   (2005-01-16 16:54) [6]

Кто-нибудь ещё смотрел коды? Хотелось бы услышать ваше мнение...



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

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

Наверх




Память: 0.46 MB
Время: 0.037 c
1-1106413490
ninja
2005-01-22 20:04
2005.02.06
ShellExecute


1-1106532893
zalfreid
2005-01-24 05:14
2005.02.06
Задача на оптимальное решение


14-1106164322
matt
2005-01-19 22:52
2005.02.06
CAN - переходники


3-1104478418
Леван
2004-12-31 10:33
2005.02.06
Откуда взять список доступных БД


1-1106635693
Артем К.
2005-01-25 09:48
2005.02.06
Подскажите, как напечатать графики 3-х TChart(ов) на одном листе?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский