Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.039 c
1-1106500724
s_pavell
2005-01-23 20:18
2005.02.06
Преобразование графических файлов


3-1105011777
sergeii
2005-01-06 14:42
2005.02.06
Копирование полей


9-1099412843
Masacre
2004-11-02 19:27
2005.02.06
Обьясните пожалста, как вообще сделать сохранение в игре...


1-1106485106
-=SS=-
2005-01-23 15:58
2005.02.06
Проблемы с Chart Help !!!!!


1-1106300737
Чапаев
2005-01-21 12:45
2005.02.06
out-параметры.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский