Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1145789779
sysop
2006-04-23 14:56
2006.05.14
Выравнивание строки


15-1145311792
pargo
2006-04-18 02:09
2006.05.14
Два компьютера и одна антивирусная программа


2-1145794547
Melifaro
2006-04-23 16:15
2006.05.14
Заполнение динамического(открытого) массива (help plz)


8-1134545410
Chaser
2005-12-14 10:30
2006.05.14
Записать все происходящее на мониторе *.avi


2-1145588748
Tans
2006-04-21 07:05
2006.05.14
Help!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский