Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.05.14;
Скачать: CL | DM;

Вниз

сжатие файла 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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.033 c
2-1145651181
Галинка
2006-04-22 00:26
2006.05.14
Где найти исключения/ошибки в Дельфи


1-1144169008
WebSqlNeederr
2006-04-04 20:43
2006.05.14
Банальный вопрос: как узнать текст строки Мемо на которой кликнул


15-1145127439
Nic
2006-04-15 22:57
2006.05.14
Технология создания крупных сайтов


2-1145774100
manevil
2006-04-23 10:35
2006.05.14
Прозрачная панель


15-1145549338
ArtemESC
2006-04-20 20:08
2006.05.14
C++