From 171818a4ccc2573cbd62457c01eccd335ce97424 Mon Sep 17 00:00:00 2001 From: Mangix Date: Thu, 29 Aug 2013 17:35:07 -0700 Subject: [PATCH] Add new script + fixes --- README | 5 +++- gzcrush | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ zipcrush | 75 +++++++++++++++++++++-------------------------------- 3 files changed, 111 insertions(+), 47 deletions(-) create mode 100755 gzcrush diff --git a/README b/README index 9008da3..763df82 100644 --- a/README +++ b/README @@ -6,7 +6,7 @@ It keeps EXIF data by default and supports arithmetic coding as well jpegfolder - script that uses jpegrescan on a given folder. keeps all EXIF data. Great for losslessly slimming down family photos. -zipcrush - script that uses several utilities to create an extremely small zip file. +gzcrush - script that uses several utilities to create an extremely small gz file. Even smaller than zopfli I might add. The script has several dependencies: KZIP: http://advsys.net/ken/utils.htm or http://www.jonof.id.au/kenutils @@ -18,3 +18,6 @@ huffmix: http://encode.ru/threads/1313-Huffmix-a-PNGOUT-r-catalyst deflopt: http://www.walbeehm.com/download/ defluff: http://encode.ru/threads/1214-defluff-a-deflate-huffman-optimizer + +zipcrush - similar to gzcrush except it works on zip files. requires KZIP and ZIPMIX as well as deflopt and +defluff. diff --git a/gzcrush b/gzcrush new file mode 100755 index 0000000..276721b --- /dev/null +++ b/gzcrush @@ -0,0 +1,78 @@ +kzip /b1024 1.zip "$1" +kzip2gz 1.zip 1.gz +rm 1.zip + +COUNTER=0 +while [ $COUNTER -lt 128 ]; do + kzip /rn /b1024 2.zip "$1" + kzip2gz 2.zip 2.gz + huffmix 1.gz 2.gz 1.gz + rm 2.gz + rm 2.zip + let COUNTER=COUNTER+1 +done + +COUNTER=0 +while [ $COUNTER -lt 128 ]; do + kzip /rn /b512 2.zip "$1" + kzip2gz 2.zip 2.gz + huffmix 1.gz 2.gz 1.gz + rm 2.gz + rm 2.zip + let COUNTER=COUNTER+1 +done + +COUNTER=0 +while [ $COUNTER -lt 128 ]; do + kzip /rn /b256 2.zip "$1" + kzip2gz 2.zip 2.gz + huffmix 1.gz 2.gz 1.gz + rm 2.gz + rm 2.zip + let COUNTER=COUNTER+1 +done + +COUNTER=0 +while [ $COUNTER -lt 128 ]; do + kzip /rn /b128 2.zip "$1" + kzip2gz 2.zip 2.gz + huffmix 1.gz 2.gz 1.gz + rm 2.gz + rm 2.zip + let COUNTER=COUNTER+1 +done + +COUNTER=0 +while [ $COUNTER -lt 128 ]; do + kzip /rn /b64 2.zip "$1" + kzip2gz 2.zip 2.gz + huffmix 1.gz 2.gz 1.gz + rm 2.gz + rm 2.zip + let COUNTER=COUNTER+1 +done + +COUNTER=0 +while [ $COUNTER -lt 128 ]; do + kzip /rn /b32 2.zip "$1" + kzip2gz 2.zip 2.gz + huffmix 1.gz 2.gz 1.gz + rm 2.gz + rm 2.zip + let COUNTER=COUNTER+1 +done + +COUNTER=0 +while [ $COUNTER -lt 128 ]; do + kzip /rn /b16 2.zip "$1" + kzip2gz 2.zip 2.gz + huffmix 1.gz 2.gz 1.gz + rm 2.gz + rm 2.zip + let COUNTER=COUNTER+1 +done + +deflopt 1.gz +defluff < 1.gz > 11.gz +deflopt 11.gz +mv 11.gz "$1" diff --git a/zipcrush b/zipcrush index 92ffcd8..fa142b0 100755 --- a/zipcrush +++ b/zipcrush @@ -1,78 +1,61 @@ -kzip /b1024 1.zip "$1" -kzip2gz 1.zip 1.gz -rm 1.zip +kzip /b1024 /r 1.zip "$1" COUNTER=0 while [ $COUNTER -lt 128 ]; do - kzip /rn /b1024 2.zip "$1" - kzip2gz 2.zip 2.gz - huffmix 1.gz 2.gz 1.gz - rm 2.gz + kzip /rn /r /b1024 2.zip "$1" + zipmix 1.zip 2.zip rm 2.zip let COUNTER=COUNTER+1 done COUNTER=0 while [ $COUNTER -lt 128 ]; do - kzip /rn /b512 2.zip "$1" - kzip2gz 2.zip 2.gz - huffmix 1.gz 2.gz 1.gz - rm 2.gz - rm 2.zip - let COUNTER=COUNTER+1 + kzip /rn /r /b512 2.zip "$1" + zipmix 1.zip 2.zip + rm 2.zip + let COUNTER=COUNTER+1 done COUNTER=0 while [ $COUNTER -lt 128 ]; do - kzip /rn /b256 2.zip "$1" - kzip2gz 2.zip 2.gz - huffmix 1.gz 2.gz 1.gz - rm 2.gz - rm 2.zip - let COUNTER=COUNTER+1 + kzip /rn /r /b256 2.zip "$1" + zipmix 1.zip 2.zip + rm 2.zip + let COUNTER=COUNTER+1 done COUNTER=0 while [ $COUNTER -lt 128 ]; do - kzip /rn /b128 2.zip "$1" - kzip2gz 2.zip 2.gz - huffmix 1.gz 2.gz 1.gz - rm 2.gz - rm 2.zip - let COUNTER=COUNTER+1 + kzip /rn /r /b128 2.zip "$1" + zipmix 1.zip 2.zip + rm 2.zip + let COUNTER=COUNTER+1 done COUNTER=0 while [ $COUNTER -lt 128 ]; do - kzip /rn /b64 2.zip "$1" - kzip2gz 2.zip 2.gz - huffmix 1.gz 2.gz 1.gz - rm 2.gz - rm 2.zip + kzip /rn /r /b64 2.zip "$1" + zipmix 1.zip 2.zip + rm 2.zip let COUNTER=COUNTER+1 done COUNTER=0 while [ $COUNTER -lt 128 ]; do - kzip /rn /b32 2.zip "$1" - kzip2gz 2.zip 2.gz - huffmix 1.gz 2.gz 1.gz - rm 2.gz - rm 2.zip - let COUNTER=COUNTER+1 + kzip /rn /r /b32 2.zip "$1" + zipmix 1.zip 2.zip + rm 2.zip + let COUNTER=COUNTER+1 done COUNTER=0 while [ $COUNTER -lt 128 ]; do - kzip /rn /b16 2.zip "$1" - kzip2gz 2.zip 2.gz - huffmix 1.gz 2.gz 1.gz - rm 2.gz - rm 2.zip - let COUNTER=COUNTER+1 + kzip /rn /r /b16 2.zip "$1" + zipmix 1.zip 2.zip + rm 2.zip + let COUNTER=COUNTER+1 done -deflopt 1.gz -defluff < 1.gz > 11.gz -deflopt 11.gz -mv 11.gz "$1" +deflopt 1.zip +defluff < 1.zip > 11.zip +deflopt 11.zip