zlib 예제

zlib 라이브러리에 대한 가장 좋은 것 중 하나는 유닉스 시스템에서 가장 널리 사용되는 압축 응용 프로그램 중 하나 인 gzip 파일 형식 / 도구 (DEFLATE를 기반으로함)와 호환된다는 것입니다. 여기에 언급 할 가치가또 다른 옵션은 부스트입니다. zlib 지원을 위해 특수 플래그로 부스트를 컴파일해야 합니다. 이 예제에서는 압축된 데이터가 검색되어 변수 compressed_data에 저장되면 프로그램은 스트림의 압축을 풀고 화면에 결과를 표시합니다. 파일에 적은 양의 데이터가 포함되어 있기 때문에 이 예제에서는 압축 해제() 함수를 사용합니다. 그러나 이전 예제에서 볼 수 있듯이 압축 해제() 함수를 사용하여 데이터의 압축을 풀 수도 있습니다. zlib는 프로세서 및 메모리 사용을 제어하는 시설을 제공합니다. 압축 레벨 값은 압축과 절충 속도를 제공 할 수있다. 또한 일부 임베디드 시스템과 같은 제한된 메모리 환경에서 유용한 메모리 보존 시설도 있습니다. 압축() 함수를 사용하여 파일의 데이터를 압축할 수도 있습니다. 구문은 첫 번째 예제와 동일합니다. http://www.boost.org/doc/libs/1_48_0/libs/iostreams/doc/classes/zlib.html 이 예제에서는 일반 텍스트 파일에서 작은 데이터 블록을 읽고 압축()으로 전달합니다. 압축기는 압축된 데이터의 내부 버퍼를 유지 관리합니다.

압축 알고리즘은 체크섬 및 최소 블록 크기에 따라 달라지므로 압축기는 더 많은 입력을 받을 때마다 데이터를 반환할 준비가 되지 않을 수 있습니다. 전체 압축 된 블록이 준비되지 않은 경우 빈 바이트 문자열을 반환합니다. 모든 데이터가 공급되면 flush() 메서드는 압축기를 강제로 최종 블록을 닫고 압축된 데이터의 나머지 부분을 반환합니다. 이 예제와 첫 번째 예제의 유일한 차이점은 데이터의 원본입니다. 그러나 ASCII 문자열이든 이진 이미지 데이터이든 압축할 수 있는 데이터의 종류를 파악할 수 있도록 표시하는 것이 중요하다고 생각합니다. 평소와 같이 파일에서 데이터를 읽고 압축 메서드를 호출하기만 하면 됩니다. 위의 프로그램은 압축 된 „Hello world“문자열을 포함하는 이전 예제에서 만든 파일 „compressed.dat“을 엽니다. 위의 그림에서 볼 수 있듯이 „Hello World“라는 문구가 압축되었습니다. 일반적으로 이 메서드는 한 번에 메모리에 맞지 않는 데이터 스트림을 압축하는 데 사용됩니다.

이 예제에는 매우 큰 데이터 스트림이 없지만 compressobj() 함수의 역학을 표시하는 용도로 사용됩니다. 나는 빠른 예를 찾고 있었고 이것을 발견했다. 매우 도움이, 감사합니다! zlib 압축 형식은 무료로 사용할 수 있으며 특허가 적용되지 않으므로 상용 제품에서도 안전하게 사용할 수 있습니다. 그것은 무손실 압축 형식 (즉 압축 과 압축 해제 사이의 데이터를 잃지 않는다는 것을 의미함)이며 다른 플랫폼에서 이식할 수 있다는 장점이 있습니다. 이 압축 메커니즘의 또 다른 중요한 이점은 데이터를 확장하지 않는다는 것입니다. 압축된 데이터는 나중에 사용할 수 있도록 파일에 저장할 수도 있습니다. 아래 예제에서는 압축된 텍스트를 파일에 저장하는 방법을 보여 줍니다: Python zlib 라이브러리는 DEFLATE 무손실 압축 알고리즘에 대한 상위 수준의 추상화인 zlib C 라이브러리에 파이썬 인터페이스를 제공합니다. 라이브러리에서 사용하는 데이터 형식은 RFC 1950에서 1952까지 지정되며 http://www.ietf.org/rfc/rfc1950.txt 사용할 수 있습니다. zlib는 데이터 압축에 사용되는 소프트웨어 라이브러리입니다.