Форум программистов, компьютерный форум, киберфорум
Delphi
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
opius
0 / 0 / 0
Регистрация: 18.05.2014
Сообщений: 10
1

Стеганография LSB BMP

07.05.2016, 12:28. Просмотров 1225. Ответов 1
Метки нет (Все метки)

Такой вопрос: мне нужно из едита побитно запихнуть в байты цвета файла-контейнера биты текста. Есть проблема, заголовок считываю, а вот как дальше считывать байты по отдельности я не знаю. Помогите, как доставать к примеру каждый 100-ый байт цвета до конца файла и изменять его?


Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, StdCtrls, ExtDlgs, ExtCtrls;
 
type
 
 
    TForm1 = class(TForm)
    Button1: TButton;
    MainMenu1: TMainMenu;
    SaveDialog1: TSaveDialog;
    OpenPictureDialog1: TOpenPictureDialog;
    CheckBox1: TCheckBox;
    CheckBox2: TCheckBox;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    N5: TMenuItem;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    Label1: TLabel;
    ListBox1: TListBox;
    Button2: TButton;
    Image1: TImage;
    Button3: TButton;
    Edit1: TEdit;
    procedure N5Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
 
     private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;   Bitmap: TBitmap; bmpfile:file of byte;
    pointer:integer;
  btr,btw,i:byte;  z:dword;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.N5Click(Sender: TObject);
begin
Close;
end;
 
procedure TForm1.Button2Click(Sender: TObject);          //proverka konteynera
var                                                      //
   fileheader: TBitmapfileheader;                        //
   infoheader: TBitmapinfoheader;                        //
   s: TFilestream;                                       //
   begin                                                 //
   s := TFileStream.Create(openpicturedialog1.filename, fmOpenRead);
     try
     s.Read(fileheader, SizeOf(fileheader));
     s.Read(infoheader, SizeOf(infoheader));
   finally
    s.Free;
  end;
  listbox1.Items.Clear;
   listbox1.Items.Add('Filesize:    ' + IntToStr(fileheader.bfSize));
   listbox1.Items.Add('Width:       ' + IntToStr(infoheader.biWidth));
   listbox1.Items.Add('Height:      ' + IntToStr(infoheader.biHeight));
   listbox1.Items.Add('BitCount:    ' + IntToStr(infoheader.biBitCount));
   listbox1.Items.Add('type:    ' + IntToStr(fileheader.bfType));
   listbox1.Items.Add('compr:    ' + IntToStr(infoheader.biCompression));
   listbox1.Items.Add('sdvig k 1 baytu:    ' + IntToStr(fileheader.bfOffBits));
   if (fileheader.bfType<>$4d42) then       //
    begin                                   //  proverka na BMP
     ShowMessage('Eto ne BMP');             //
     exit;                                  //
    end;
 
   if infoheader.biPlanes <> 1  then
   begin                                   //  ÷èñëî ïëîñêîñòåé äîëæíî áûòü =åäèíèöå
     ShowMessage('Mnogo ploskostey');      //
     exit;                                 //
   end;                                    //
 
    if (infoheader.biBitCount <> 24) then
    begin                                  //  kol-vo bit na piksel`
     ShowMessage('Ne 24 bita na piksel`'); //
     exit;                                 //
    end;                                   //
 
    if  (infoheader.biCompression <> 0 )  then//
    begin                                  //  est` li kompressiya
     ShowMessage('Est` kompressiya');      //
     exit;                                 //
    end;                                   //
 
 
 
end;
 
 
 
 
 
 
procedure TForm1.N2Click(Sender: TObject);    //menu open
begin
openpicturedialog1.Execute;
 assignfile(bmpfile,openpicturedialog1.filename);
end;
 
 
 
 
procedure TForm1.Button1Click(Sender: TObject);     //main buton
var t:string;
begin
      if (RadioButton1.Checked = True) then i:=$FE else           //
      begin                                                      //
       if (RadioButton2.Checked = True) then i:=$FC else         //
        begin                                                    //  proverka bitov
         ShowMessage('Choose bit-change');                       //
         exit;                                                   //
        end;                                                     //
      end;                                                       //
    // Edit1.Text:='Ïðèñâàèâàåì òåêñò';
    // t:=edit1.text;
 
 
   end;
 
 
end.
З.Ы. Из эдита я пытаюсь присвоить его значения в переменную типа "строки", но оно в переменную не заноистся ни под каким предлогом... что за ?
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.05.2016, 12:28
Ответы с готовыми решениями:

Конвертер BMP 32 bit BGRA в BMP 8 bit c Palette
Добрый день! есть следующий вариант преобразования procedure TForm1.Button1Click(Sender:...

Стеганография
Доброго времени суток. Я начал изучать основы стеганографии и столкнулся с проблемой. Необходимо...

Стеганография
Основы и методы защиты информации Для некоторых скрытие текста методами стеганографии вызывает...

Стеганография
Доброй ночи! У меня большая проблема. Я не могу найти ошибку в программе. Она вместо удваивания...

1
DenNik
Непрофессионал
2473 / 2114 / 339
Регистрация: 26.07.2011
Сообщений: 9,282
Записей в блоге: 1
09.05.2016, 02:39 2
Будь внимательнее к тому, что есть на форуме
Стеганография
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.05.2016, 02:39

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Стеганография.Шифрование текста в картинку
Задали курсовую Стеганография, нужно чтобы текст шифровался в картинку jpeg. Помогите пожалуйста....

Стеганография
Здаствуйте. Может кто нибудь помочь мне. Мне нужно в формате Мpeg2 встроить любую информацию, т.е...

Стеганография Диплом
Привет всем!! У меня большая проблема горю с дипломом по стеганографии(.ВМР)!! Программа есть...

Стеганография в WAV
Злой препод задал задачку по стеганографии. Надо скрыть инфу в младших значащих битах. Передо мной...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.