示例#1
0
 def test_jpeg_inverse(self):
     settings.JPEG_BLOCK_SIZE = 2
     compressed = model.CompressedImage(
         np.array([[1, 2, 11, 22], [3, 4, 33, 44]]),
         np.array([[5, 6, 55, 66], [7, 8, 77, 88]]),
         np.array([[9, 10, 99, 1010], [11, 12, 1111, 1212]]))
     hic = codec.jpeg_encode(compressed)
     inverse = codec.jpeg_decode(hic)
     self.assertEqual(compressed, inverse)
示例#2
0
 def test_jpeg_encode(self):
     compressed = model.CompressedImage(np.array([[1, 2], [3, 4]]),
                                        np.array([[5, 6], [7, 8]]),
                                        np.array([[9, 10], [11, 12]]))
     hic = codec.jpeg_encode(compressed)
     payloads = hic.payloads
     self.assertEqual(len(payloads), 20)
     self.assertEqual(hic.hic_type, model.Compression.JPEG)
     self.assertEqual(payloads[0].payloads[0].numbers, (1, '1'))
示例#3
0
 def test_zero_blocks(self):
     settings.JPEG_BLOCK_SIZE = 2
     compressed = model.CompressedImage(
         np.array([[0, 0, 11, 0], [0, 0, 0, 0]]),
         np.array([[0, 0, 55, 0], [0, 0, 0, 0]]),
         np.array([[9, 10, 99, 1010], [11, 12, 1111, 1212]]))
     hic = codec.jpeg_encode(compressed)
     inverse = codec.jpeg_decode(hic)
     self.assertEqual(compressed, inverse)
示例#4
0
    def test_gh_jpg(self):
        rgb = cv2.imread("resources/gh.png")
        out = compression.jpeg_compression(rgb)
        h = codec.jpeg_encode(out)

        bites = h.byte_stream()

        retrieve = h.from_bytes(bites)
        loads = zip(h.payloads, retrieve.payloads)
        for (i, z) in enumerate(loads):
            self.assertEqual(z[0], z[1], msg="Case %d" % i)
示例#5
0
def compress(path, output, c: model.Compression):
    rgb = cv2.imread(path)
    if c == model.Compression.JPEG:
        compressed = compression.jpeg_compression(rgb)
        hi = codec.jpeg_encode(compressed)
    elif c == model.Compression.HIC:
        compressed = compression.wavelet_compression(rgb)
        hi = codec.wavelet_encode(compressed)
    else:
        raise RuntimeError("Unknown compression type")
    output = os.path.join(output, img_name(path, c))
    hi.write_file(output)
示例#6
0
 def f():
     compressed = compression.jpeg_compression(i)
     codec.jpeg_encode(compressed)