bytedeco/javacv

PNG images are not getting compressed correctly

Open

#1,462 opened on Jul 2, 2020

View on GitHub
 (3 comments) (0 reactions) (0 assignees)Java (1,583 forks)batch import
help wantedquestion

Repository metrics

Stars
 (6,985 stars)
PR merge metrics
 (No merged PRs in 30d)

Description

I m trying to compress the PNG images , and have tried to use different COMPRESSION algorithm , but the final image size is greater than original size. Image Used- https://upload.wikimedia.org/wikipedia/commons/d/d7/Astro_4D_stars_proper_radial_g_b_8mag_big.png

Before resize length 1966656 After resize length IMWRITE_PNG_STRATEGY_HUFFMAN_ONLY - 6355730 After resize length IMWRITE_PNG_STRATEGY_FILTERED - 6355730 After resize length IMWRITE_PNG_STRATEGY_FIXED 6355730 After resize length IMWRITE_PNG_STRATEGY_RLE 6355730 The resizing(decreasing the dimension) is increasing the size of the image after the first log.

Steps to reproduce I am using Java for this-

resizeByThird(sourceImage: Path, destinationImage: Path) {
        val sourceImageMat = imread(sourceImage.toString())
        val resizedImage = Mat()
        resize(sourceImageMat, resizedImage, Size(3840, 2208))
        println(sourceImage.toFile().length())
        val params: IntArray = intArrayOf(IMWRITE_PNG_STRATEGY_HUFFMAN_ONLY)
        imwrite(destinationImage.toString(), resizedImage, params)
        println(destinationImage.toFile().length())
    }

I am facing this issue with JPEG image as well

I have also tried to use IMWRITE_PNG_COMPRESSION for PNG ,even that did not help

Contributor guide