Форум: "Основная";
Текущий архив: 2004.01.20;
Скачать: [xml.tar.bz2];
ВнизСтеганография Найти похожие ветки
← →
Rander (2004-01-08 23:15) [0]Господа проблема такова - нужно внедрять в изображения собственные данные. Может у кого-то есть какие-либо наработки в этой области? Очень и очень надо. Нужен хотя бы код занимающейся сменой наименьшего бита в bmp картинке, а обо всем остальном даже не мечтаю.
← →
Ig (2004-01-09 00:55) [1]У меня есть прога(и не одна) которая это делает, но и"ссс"ходников к ней нет :(
З.Ы.
>код занимающейся сменой наименьшего бита в bmp картинке
А метод народного тыка непройдет?
← →
TUser (2004-01-09 07:34) [2]algolist.manual.ru
+ архив по форумум (недавно был тут аналогичный вопрос).
← →
Rander (2004-01-09 12:10) [3]Ig Не пройдет 8-(
И нужен исходник
TUser
Спасибо.
Я как раз и пытаюсь тех людей найти
← →
Ega23 (2004-01-09 12:18) [4]TIFF для этого дела идеально подходит. Хоть музыку вовнутрь вшивай.
← →
Rander (2004-01-09 13:10) [5]Ega23
Мне все равно bmp, jpg, tiff
Есть неделя!!! Времени по истечение которой я должен представить програмку встраивающую водяной знак.
Нужно для диплома, поскольку мне резко сказали, что все что сделано раньше не пойдет 8-((
Таким образом есть несколько проблем:
1. Преобразовать изображение в битовую форму - т.е. каждой точке сопоставить битовое число - так что изменяя скажем младший байт можно сохранить данные.
2. Готовый алгоритм занимающийся встраиванием данных.
Есть на с - но я просто не успею его переделать.
И куча прочих мелочей, которыми не хочу Вам пудрить мозги.
А посему просьба к людям сталкивавшимся с подобной проблематикой - любые материалы, исходники и прочее будут не просто полезны, они будут сверх необходимы.
Если есть возможность помогите!
← →
Ega23 (2004-01-09 13:14) [6]
> Rander (09.01.04 13:10) [5]
Объясни проблему по-подробнее:
Тебе нужно на некоторое изображение наложить полу-прозрачное с водяными знаками? Или что?
← →
Rander (2004-01-09 13:55) [7]Ega23 ©
Спасибо что откликнулся.
Ситуация такова надо вложить в изображение скрытые данные. К которым мог бы получить доступ только авторизованный пользователь. Он вводит пароль а ему в ответ - эта картинка сделана таким-то.
Ситуцация с наложением полу прозрачного водяного знака тоже была бы сверх полезна.
Если у тебя есть код поделись пожалуйста.
← →
han_malign (2004-01-09 14:06) [8]> Ega23 © (09.01.04 13:14) [6]
> Тебе нужно на некоторое изображение наложить полу-прозрачное с водяными знаками? Или что?
- или что - в теме написано - Стеганография
> Rander (09.01.04 13:10) [5]
> изменяя скажем младший байт
- если RGB(32/24/16 бит BMP) или CMYK(TIFF) - пройдет, причем можно три/четыре бита(по каждому каналу), а вот ежели палитра(64/256 цветов, в частности, GIF) - изображение накроется - нужно палитру затачивать(если в тупую - 128 цветная картинка, с 256 цветной палитрой - по два цвета, одинакового цвета(во тавтология) на бит).
С JPG, PNG отдельный случай, т.к. сжатие с потерей качества, и как внести однозначно востонавливаемый дополнительный сигнал, я лично, не знаю - надо с косинус-преобразованием разбираться("высокочастотную составляющую", то есть, данные в младших битах - порежет однозначно)...
← →
Rander (2004-01-09 14:14) [9]han_malign
Вот как раз с этим я и вожусь.
Литературы море, но все теоретическое.
А времени банально нет.
Есть ли готовый код, который в один из рассмотренных тобой вариантов (без сжатия, ну его пока) осуществляет непосредственно внедрение?
Как вычислить контрольные суммы, зашифровать - это я придумаю, а вот как их после внедрить???
← →
han_malign (2004-01-09 15:11) [10]только что слепил, на 24бит BMP (\WINDOWS\Web\Wallpaper\Bliss.bmp) работает(изменение младшего бита):
procedure TForm1.Button1Click(Sender: TObject);
var bmp: TBitmap;
x,y,bw,i,j: integer;
_s: string;
b: byte;
pc: PChar;
begin
if(OpenDialog1.Execute)then begin
bmp:=TBitmap.Create;
bmp.LoadFromFile(OpenDialog1.FileName);
if(not (bmp.PixelFormat in[pfDevice,pf15bit..pf32bit]))then ShowMessage("Формат не поддерживается")
else begin
_s:=Edit1.Text+#0;
y:=0;
i:=1;j:=8;b:=0;
while((y<bmp.Height)and(i<=Length(_s)))do begin
x:=0;
while((x<bmp.Width)and(i<=Length(_s)))do begin
if(j=8)then b:=byte(_s[i]);
if(b and 1=0)then Bmp.Canvas.Pixels[x,y]:= Bmp.Canvas.Pixels[x,y] and not 1
else Bmp.Canvas.Pixels[x,y]:= Bmp.Canvas.Pixels[x,y] or 1;
b:=b shr 1;
dec(j);
if(j=0)then begin
inc(i);
j:=8;
end;
inc(x);
end;
inc(y);
end;
bmp.SaveToFile("fff.bmp");
end;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var bmp: TBitmap;
x,y,bw,i,j: integer;
_s: string;
b: byte;
pc: PChar;
begin
if(OpenDialog1.Execute)then begin
bmp:=TBitmap.Create;
bmp.LoadFromFile(OpenDialog1.FileName);
if(not (bmp.PixelFormat in[pfDevice,pf15bit..pf32bit]))then ShowMessage("Формат не поддерживается")
else begin
_s:="";
y:=0;
i:=1;j:=0;b:=$FF;
while((y<bmp.Height)and((j<>0) or (b<>0)))do begin
x:=0;
while((x<bmp.Width)and((j<>0) or (b<>0)))do begin
if(j=0)then begin
j:=8;
b:=0;
end;
b:=b shr 1;
if(Bmp.Canvas.Pixels[x,y]and 1<>0)then b:=b or $80;
dec(j);
if(j=0)then begin
_s:=_s+Char(b)
end;
inc(x);
end;
inc(y);
end;
Edit1.Text:=_s;
end;
end;
end;
← →
Ega23 (2004-01-09 15:13) [11]Есть убогая система классов, которая расшифровывает TIFF и из него bmp делает. Обратно - не помню, вроде не закладывал. Писалось по-быстрому, нужно было узнать как раз то, что ты спрашиваешь - есть ли в изображении какая-нибудь "скрытая информация". Могу поделиться исходниками + статьи по формату Tiff.
← →
Rander (2004-01-09 15:20) [12]han_malign
Огромное спасибо!!!
Этот кусок мне очень поможет, по крайней мере становится ясно как все работает.
Ega23
Если можешь залей куда нибудь или вот мой адрес
rander[собака]bk[точка]ru
Спасибо.
← →
Ega23 (2004-01-09 15:38) [13]Лови.
← →
Yura (2004-01-09 16:25) [14]Ega23
Очень интересный вопрос - есть ли в изображении какая-нибудь "скрытая информация". А со мной не мог бы поделиться своей разработкой?
Если да - то вышли по адресу asdf_yura[собака]mail.ru
← →
han_malign (2004-01-09 16:56) [15]> Очень интересный вопрос - есть ли в изображении какая-нибудь "скрытая информация".
Если полноцветное "реальное"(с плавными переходами цветов) изображение:
- для RGB, CMYK строишь БПФ по каждому цветовому каналу, по строкам/столбцам - наличие высокочастотной шумовой составляющей показывает присутвие постороннего сигнала(или плохое качаство картинки :)) ). Таким образом любая зашифрованная информация удаляется из картинок протым Blur, в фотошопе, практически без потери качества :)).
Для палитры - еще проще - если слишком много дублируемых(или слишком близких) цветов - что-то здесь не так(хотя фактически хватит только одного, если его достаточно много на изображении)...
← →
Ega23 (2004-01-09 17:07) [16]
> Yura (09.01.04 16:25) [14]
Лови
← →
Rander (2004-01-09 18:15) [17]Ega23
Получил спасибо!
Буду разбираться 8-)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.01.20;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.009 c