Форум: "Начинающим";
Текущий архив: 2006.05.14;
Скачать: [xml.tar.bz2];
Внизсжатие файла txt Найти похожие ветки
← →
Костька © (2006-04-21 18:19) [0]если я кодирую *.jpeg в текстовый файл, затем сожму этот txt, потом получится восстанавить картинку?
← →
TUser © (2006-04-21 18:27) [1]Смотря как сожмешь. Если архиватором - то получится.
← →
Костька © (2006-04-21 18:31) [2]архиватором не получается. где-то слышал про zlib, что это?
← →
palva © (2006-04-21 18:34) [3]> архиватором не получается
Не получается сжать или не получается восстановить. Расскажите подробнее, чем кодируете, какой архиватор, какие сообщения об ошибке.
← →
Desdechado © (2006-04-21 18:34) [4]> я кодирую *.jpeg в текстовый файл
сначала попробуй раскодировать назад для восстановления картинки, а потом уже задавайся вопросами о сжатии
← →
Костька © (2006-04-21 18:37) [5]завтра приду, домой пора. всем СПА-СИБО. ДО ВСТРЕЧИ.
← →
Gero © (2006-04-22 00:48) [6]А почему не в rtf?
← →
Gydvin © (2006-04-22 01:10) [7]
> А почему не в rtf?
:))))
наверное думает, что ужмется лучше ))))))))))))
← →
SergP © (2006-04-22 04:28) [8]
> если я кодирую *.jpeg в текстовый файл, затем сожму этот
> txt, потом получится восстанавить картинку?
Помнится один товарисч пытался толи картинку в текст перекодировать, толи наоборот -точно не помню. :-)
Только какой в этом смысл - я не пойму.
← →
TUser © (2006-04-22 09:02) [9]Тот товарисч в Орешнике. А эта ветка - про стеганографию. Никакого юмора.
zlib - библиотечка, которая умеет запаковать и распаковать текст (и не только). Кажется, платная.
← →
SergP © (2006-04-22 10:23) [10]
> zlib - библиотечка, которая умеет запаковать и распаковать
> текст (и не только). Кажется, платная.
Это как? Она же уже есть в Delphi, т.е. входит в стандартную поставку.
← →
Desdechado © (2006-04-22 20:26) [11]> Кажется, платная
а мне кажется, что наоборот
> А эта ветка - про стеганографию
Что-то я не вижу этого у автора. Если б текст в картинку кодировать, это было бы стеганография. А наоборот - это что-то другое...
← →
antonn © (2006-04-22 20:31) [12]Desdechado © (22.04.06 20:26) [11]
Если б текст в картинку кодировать, это было бы стеганография. А наоборот - это что-то другое...
это вроде дописывать а зад файлу другой файл, и при открытии его откроется только первый.
← →
antonn © (2006-04-22 20:32) [13]antonn © (22.04.06 20:31) [12]
дописывать а зад
в смысле в конец
← →
palva © (2006-04-22 20:36) [14]> Если б текст в картинку кодировать, это было бы стеганография. А наоборот - это что-то другое...
А что, открываешь текст - роман Война и мир. А на самом деле закодированная порнографическая коллекция. Чем не стеганография?
← →
Desdechado © (2006-04-22 21:00) [15]> закодированная порнографическая коллекция
надо сказать, хорошо подобранная и правильно закодированная, чтоб получился "война и мир" :)))
← →
palva © (2006-04-22 21:08) [16]> правильно закодированная
Граф Толстой кодировал. Это вам не Base64.
← →
DevilDevil © (2006-04-23 03:54) [17]Костька © (21.04.06 18:19)
Не мучайся. Словарному методу архивации (который используется в WinRar и др архиваторах) всё равно, какое расширение у файла, важно содержимое. А содержимое jpeg файлов таково, что степень их сжатия очень низка. Однако непонятно, почему возникают ошибки. Попробуй:
1) взять SomeJPG.jpg
2) переименовать: SomeJPG.txt
3) добавить в архив SomeJPG.rar
4) распаковать архив
5) переименовать в SomeJPG.jpg
6) открыть SomeJPG.jpg
Только что специально попробовал так сделать, всё без ошибок
Ошибки могли возникать если ты открывал файл в текстовом редакторе. Дело в том что в текстовом файле после каждой строки стоят два символа с кодами #10 и #13, и редактор может добавлять недостающий, если имеется только один из них, т.е изменять файл
Но если так хочется сжимать жпеги, то ОЧЕНЬ ПЛОХО ДОКУМЕНТИРОВАННАЯ библиотека zlib даст наилучший коэфициент сжатия. Она сжимает даже *.rar, прибавляет всего 26кб к размеру программы, абсолютно бесплатна и входит в поставку к Delphi. Просто добавь zlib в uses. Можешь использовать следующие функции:function CompressStream(Dest, Source : TStream) : DWORD;
var
C : TCompressionStream;
Ps, Pd : integer;
begin
Pd := Dest.Position;
C := TCompressionStream.Create(clMax, Dest);
Ps := Source.Position;
Source.Position := 0;
C.CopyFrom(Source, 0);
C.Free;
Result := Dest.Position - Pd;
Dest.Position := Pd;
Source.Position := Ps;
end;
function CompressFile(Dest, Source : string) : DWORD;
var D, S : TFileStream;
begin
Result := 0;
try
D := TFileStream.Create(Dest, fmCreate);
S := TFileStream.Create(Source, fmOpenRead);
Result := CompressStream(D, S);
finally
D.Free;
S.Free;
end;
end;
function DecompressStream(Dest, Source : TStream) : DWORD;
var
D : TDecompressionStream;
buf : array[0..1023] of byte;
BtRead, Ps, Pd : integer;
begin
Ps := Source.Position;
Pd := Dest.Position;
Source.Position := 0;
D := TDecompressionStream.Create(Source);
repeat
BtRead := D.Read(buf, 1024);
Dest.Write(buf,Btread);
until BtRead<1024;
D.Free;
Result := Dest.Position - Pd;
Source.Position := Ps;
Dest.Position := Pd;
end;
function DecompressFile(Dest, Source : string) : DWORD;
var D, S : TFileStream;
begin
Result := 0;
try
D := TFileStream.Create(Dest, fmCreate);
S := TFileStream.Create(Source, fmOpenRead);
Result := DecompressStream(D, S);
finally
D.Free;
S.Free;
end;
end;
ЗЫ Если доведёшь их до ума, пришли мне обновления
← →
TUser © (2006-04-23 06:49) [18]> Если б текст в картинку кодировать, это было бы стеганография.
Чего угодно - во что угодно. Главное чтобы видно не было.
← →
TUser © (2006-04-23 06:50) [19]> надо сказать, хорошо подобранная и правильно закодированная, чтоб получился "война и мир" :)))
Пробелами кодируют, например.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.05.14;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.01 c