示例#1
0
 def get_data(self, version=1):
     """Get decompressed bytes."""
     if not self.is_written:
         return None
     width, height = self.rectangle[3], self.rectangle[2]
     return decompress(self.data, self.compression, width, height,
                       self.depth, version)
示例#2
0
    def get_data(self, width, height, depth, version=1):
        """Get decompressed channel data.

        :param width: width.
        :param height: height.
        :param depth: bit depth of the pixel.
        :param version: psd file version.
        :rtype: bytes
        """
        return decompress(self.data, self.compression, width, height, depth, version)
示例#3
0
    def get_data(self, header):
        """Get decompressed data.

        :param header: See :py:class:`~psd_tools.psd.header.FileHeader`.
        :return: list of bytes corresponding each channel.
        :rtype: list
        """
        data = decompress(self.data, self.compression, header.width, header.height * header.channels, header.depth,
                          header.version)
        plane_size = len(data) // header.channels
        with io.BytesIO(data) as f:
            return [f.read(plane_size) for _ in range(header.channels)]
示例#4
0
def test_compress_decompress_fail(data, width, height, depth):
    decoded = decompress(data, Compression.ZIP_WITH_PREDICTION, width, height,
                         depth)
    encoded = compress(decoded, Compression.ZIP_WITH_PREDICTION, width, height,
                       depth)
    assert data == encoded
示例#5
0
def test_compress_decompress(data, kind, width, height, depth, version):
    compressed = compress(data, kind, width, height, depth, version)
    output = decompress(compressed, kind, width, height, depth, version)
    assert output == data, 'output=%r, expected=%r' % (output, data)