Как работает программа
Программа использует компонент Graph, о котором я рассказывал в прошлой статье.
Примечание:
Материал раздела
Сейчас я несколько улучшил этот компонент. Плюс, в нем появилось две новых функции: function ReflectData(BaseBitmap, DataBitmap: TBitmap; List: TStrings; Reflection: TReflectionProc; ScatterType: TScatterType; Factor: Integer = 1): TReflectionResult; virtual; function AssemblyData(BaseBitmap, DataBitmap: TBitmap; Assembling: TAssemblingProc): Boolean; virtual; Первая функция создает изображение, содержащее информацию; вторая - получает информацию из двух изображений, как я рассказывал выше. Параметры функции ReflectData:
- BaseBitmap - Базовое изображение, на его основе создается изображение, содержащее информацию
- DataBitmap - Изображение, содержащее информацию
- Reflection - Процедура, которая изменяет соответствующий байт исходного изображения и формирует DataBitmap Эта процедура отвечает за сохранение информации во второй картинке. Но о ней - чуть позже.
- ScatterType - Тип распределения информации Может принимать два значения: stGiven и stEvenly По умолчанию в программе установлено значение stEvenly. Это означает, что вся информация будет равномерно распределена по всей картинке. Если так, то задавать значение следующего параметра Factor не нужно. Если ScatterType установить в stGiven, то распределение информации зависит от коэффициента распределения.
- Factor - Коэффициент распределения. Если параметр ScatterType равен stGiven, то фактически Factor означает через сколько байт то начала картинки (не совсем от начала - первые восемь байт идут на длину записываемого текста и на этот коэффициент) будет вписан следующий код символа текста. В программе этот коэффициент задается в компоненте TEdit.
- Value - Величина из BaseBitmap. Именно это значение шифруется.
- Text - Текст в виде единой строки.
- Index - Текущий символ в тексте, который должен быть зашифрован. В эой программе код этого символа складывается с параметром Value при зашифровке.
- BaseBitmap - Базовое изображение
- DataBitmap - Изображение, содержащее информацию
- Assembling - Процедура, формирующая текстовые данные
- BaseValue - Текущая величина из BaseBitmap
- DataValue - Текущая величина из DestBitmap