Главная страница
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.041 c
1-1144314517
REA
2006-04-06 13:08
2006.05.14
Локализация стандартных сообщений в BPL


15-1145438911
foll
2006-04-19 13:28
2006.05.14
плагиат


15-1145425106
syte_ser78
2006-04-19 09:38
2006.05.14
динамический счетчик


3-1142913265
Dyusha
2006-03-21 06:54
2006.05.14
Подстановка значений в поля


4-1140414579
Виталий Ульянов
2006-02-20 08:49
2006.05.14
Работа с портами