Package com.alibaba.simpleimage

Source Code of com.alibaba.simpleimage.JPEGQualityTest

/**
* Project: simpleimage-1.1
*
* File Created at 2010-9-1
* $Id$
*
* Copyright 2008 Alibaba.com Croporation Limited.
* All rights reserved.
*
* This software is the confidential and proprietary information of
* Alibaba Company. ("Confidential Information").  You shall not
* disclose such Confidential Information and shall use it only in
* accordance with the terms of the license agreement you entered into
* with Alibaba.com.
*/
package com.alibaba.simpleimage;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;

import junit.framework.TestCase;

import org.apache.commons.io.IOUtils;

import com.alibaba.simpleimage.render.ReadRender;
import com.alibaba.simpleimage.render.WriteRender;

/**
* TODO Comment of JPEGQualityTest
* @author wendell
*
*/
public class JPEGQualityTest extends TestCase {
    static File quaDir = new File("./src/test/resources/conf.test/simpleimage/quality");
    static File resultDir = new File("./src/test/resources/conf.test/simpleimage/result");
   
    public void testQualityConsistent() throws Exception{
        for (File imgFile : quaDir.listFiles()) {
            if(imgFile.getName().indexOf("jpg") < 0){
                continue;
            }
           
            InputStream in = new FileInputStream(imgFile);
            OutputStream out = new FileOutputStream(new File(resultDir, "QUALITY_" + imgFile.getName()));
            WriteRender wr = null;
            try {
                ReadRender rr = new ReadRender(in, true);
                wr = new WriteRender(rr, out);

                wr.render();
            } finally {
                IOUtils.closeQuietly(in);
                IOUtils.closeQuietly(out);
            }
        }
       
        ImageWrapper wi = null;
       
        wi = readImage(resultDir, "QUALITY_quality_80.jpg");
        assertTrue(wi.getQuality() == 80);
       
        wi = readImage(resultDir, "QUALITY_quality_90.jpg");
        assertTrue(wi.getQuality() == 90);
       
        wi = readImage(resultDir, "QUALITY_quality_95.jpg");
        assertTrue(wi.getQuality() == 95);
       
        wi = readImage(resultDir, "QUALITY_seq_1x1_1x1_1x1.jpg");
        for(int i = 0; i < 3; i++){
            assertTrue( wi.getHorizontalSamplingFactor(0) == 1);
            assertTrue( wi.getVerticalSamplingFactor(0) == 1);
        }

        wi = readImage(resultDir, "QUALITY_seq_1x2_1x1_1x1.jpg");   
        assertTrue(wi.getHorizontalSamplingFactor(0) == 1);
        assertTrue(wi.getVerticalSamplingFactor(0) == 2);
        assertTrue(wi.getHorizontalSamplingFactor(1) == 1);
        assertTrue(wi.getVerticalSamplingFactor(1) == 1);
        assertTrue(wi.getHorizontalSamplingFactor(2) == 1);
        assertTrue(wi.getVerticalSamplingFactor(2) == 1);
       
        wi = readImage(resultDir, "QUALITY_seq_2x1_1x1_1x1.jpg");
        assertTrue(wi.getHorizontalSamplingFactor(0) == 2);
        assertTrue(wi.getVerticalSamplingFactor(0) == 1);
        assertTrue(wi.getHorizontalSamplingFactor(1) == 1);
        assertTrue(wi.getVerticalSamplingFactor(1) == 1);
        assertTrue(wi.getHorizontalSamplingFactor(2) == 1);
        assertTrue(wi.getVerticalSamplingFactor(2) == 1);
       
        wi = readImage(resultDir, "QUALITY_seq_2x2_1x1_1x1.jpg");
        assertTrue(wi.getHorizontalSamplingFactor(0) == 2);
        assertTrue(wi.getVerticalSamplingFactor(0) == 2);
        assertTrue(wi.getHorizontalSamplingFactor(1) == 1);
        assertTrue(wi.getVerticalSamplingFactor(1) == 1);
        assertTrue(wi.getHorizontalSamplingFactor(2) == 1);
        assertTrue(wi.getVerticalSamplingFactor(2) == 1);
    }
   
    public ImageWrapper readImage(File dir, String filename) throws Exception{
        InputStream in = new FileInputStream(new File(dir, filename));
        try {
            ReadRender rr = new ReadRender(in, true);
           
            return rr.render();
        }finally{
            IOUtils.closeQuietly(in);
        }
    }
}
TOP

Related Classes of com.alibaba.simpleimage.JPEGQualityTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.