@Test public void testGetJpegImageData_420Sampling() throws Exception { String resource = "org/apache/shindig/gadgets/rewrite/image/testImage420.jpg"; InputStream is = getClass().getClassLoader().getResourceAsStream(resource); JpegImageUtils.JpegImageParams imageParams = JpegImageUtils.getJpegImageData(is, resource); assertEquals(JpegImageUtils.SamplingModes.YUV420, imageParams.getSamplingMode()); }
@Test public void testGetJpegImageData_420Sampling() throws Exception { String resource = "org/apache/shindig/gadgets/rewrite/image/testImage420.jpg"; InputStream is = getClass().getClassLoader().getResourceAsStream(resource); JpegImageUtils.JpegImageParams imageParams = JpegImageUtils.getJpegImageData(is, resource); assertEquals(JpegImageUtils.SamplingModes.YUV420, imageParams.getSamplingMode()); }
protected ImageOutputter getOutputter() { Iterator<ImageWriter> writers = ImageIO.getImageWritersByFormatName(getOriginalFormatName()); if (writers.hasNext()) { ImageWriter writer = writers.next(); ImageWriteParam param = writer.getDefaultWriteParam(); if (getOriginalFormatName().equals("jpeg")) { param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); param.setCompressionQuality(config.getJpegCompression()); if (param instanceof JPEGImageWriteParam) { ((JPEGImageWriteParam) param).setOptimizeHuffmanTables( config.getJpegHuffmanOptimization()); } } JpegImageUtils.SamplingModes samplingMode = JpegImageUtils.SamplingModes.DEFAULT; if (config.getJpegRetainSubsampling() && sourceImageParams != null) { samplingMode = sourceImageParams.getSamplingMode(); } return new ImageIOOutputter(writer, param, samplingMode); } return new SanselanOutputter(FORMAT_NAME_TO_IMAGE_FORMAT.get(getOriginalFormatName())); }
@Test public void testRetainSubsmaplingEnabled() throws Exception { HttpResponse resp = createResponse("org/apache/shindig/gadgets/rewrite/image/testImage444.jpg", "image/jpeg"); HttpResponse rewritten = rewrite(resp, getConfigWithRetainSampling(true, 0.70f)); JpegImageUtils.JpegImageParams params = JpegImageUtils.getJpegImageData(rewritten.getResponse(), ""); assertTrue(rewritten.getContentLength() < resp.getContentLength()); assertEquals(JpegImageUtils.SamplingModes.YUV444, params.getSamplingMode()); }
@Test public void testGetJpegImageData_444Sampling() throws Exception { String resource = "org/apache/shindig/gadgets/rewrite/image/testImage444.jpg"; InputStream is = getClass().getClassLoader().getResourceAsStream(resource); JpegImageUtils.JpegImageParams imageParams = JpegImageUtils.getJpegImageData(is, resource); assertEquals(JpegImageUtils.SamplingModes.YUV444, imageParams.getSamplingMode()); assertEquals(0.90F, imageParams.getChromaQualityFactor(), 0.01F); assertEquals(0.90F, imageParams.getLumaQualityFactor(), 0.01F); assertEquals(0.90F, imageParams.getApproxQualityFactor(), 0.01F); }
@Test public void testGetJpegImageData_444Sampling() throws Exception { String resource = "org/apache/shindig/gadgets/rewrite/image/testImage444.jpg"; InputStream is = getClass().getClassLoader().getResourceAsStream(resource); JpegImageUtils.JpegImageParams imageParams = JpegImageUtils.getJpegImageData(is, resource); assertEquals(JpegImageUtils.SamplingModes.YUV444, imageParams.getSamplingMode()); assertEquals(0.90F, imageParams.getChromaQualityFactor(), 0.01F); assertEquals(0.90F, imageParams.getLumaQualityFactor(), 0.01F); assertEquals(0.90F, imageParams.getApproxQualityFactor(), 0.01F); }
@Test public void testRetainSubsmaplingEnabled() throws Exception { HttpResponse resp = createResponse("org/apache/shindig/gadgets/rewrite/image/testImage444.jpg", "image/jpeg"); HttpResponse rewritten = rewrite(resp, getConfigWithRetainSampling(true, 0.70f)); JpegImageUtils.JpegImageParams params = JpegImageUtils.getJpegImageData(rewritten.getResponse(), ""); assertTrue(rewritten.getContentLength() < resp.getContentLength()); assertEquals(JpegImageUtils.SamplingModes.YUV444, params.getSamplingMode()); }
@Test public void testRetainSubsmaplingDisabled() throws Exception { HttpResponse resp = createResponse("org/apache/shindig/gadgets/rewrite/image/testImage444.jpg", "image/jpeg"); HttpResponse rewritten = rewrite(resp, getConfigWithRetainSampling(false, 0.70f)); JpegImageUtils.JpegImageParams params = JpegImageUtils.getJpegImageData(rewritten.getResponse(), ""); assertTrue(rewritten.getContentLength() < resp.getContentLength()); assertEquals(JpegImageUtils.SamplingModes.YUV420, params.getSamplingMode()); }
@Test public void testRetainSubsmaplingDisabled() throws Exception { HttpResponse resp = createResponse("org/apache/shindig/gadgets/rewrite/image/testImage444.jpg", "image/jpeg"); HttpResponse rewritten = rewrite(resp, getConfigWithRetainSampling(false, 0.70f)); JpegImageUtils.JpegImageParams params = JpegImageUtils.getJpegImageData(rewritten.getResponse(), ""); assertTrue(rewritten.getContentLength() < resp.getContentLength()); assertEquals(JpegImageUtils.SamplingModes.YUV420, params.getSamplingMode()); }