@Test public void testGetJpegImageData_notHuffmanOptimized() throws Exception { String resource = "org/apache/shindig/gadgets/rewrite/image/testImageNotHuffmanOptimized.jpg"; InputStream is = getClass().getClassLoader().getResourceAsStream(resource); JpegImageUtils.JpegImageParams imageParams = JpegImageUtils.getJpegImageData(is, resource); assertEquals(false, imageParams.isHuffmanOptimized()); } }
@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_huffmanOptimized() 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(true, imageParams.isHuffmanOptimized()); }
@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_huffmanOptimized() 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(true, imageParams.isHuffmanOptimized()); }
@Test public void testGetJpegImageData_notHuffmanOptimized() throws Exception { String resource = "org/apache/shindig/gadgets/rewrite/image/testImageNotHuffmanOptimized.jpg"; InputStream is = getClass().getClassLoader().getResourceAsStream(resource); JpegImageUtils.JpegImageParams imageParams = JpegImageUtils.getJpegImageData(is, resource); assertEquals(false, imageParams.isHuffmanOptimized()); } }
@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); }
jpegImageParams = JpegImageUtils.getJpegImageData(response.getContentBytes(), uri.getPath());
HttpResponse rewrite(HttpResponse original, OptimizerConfig config) throws IOException, ImageReadException { HttpResponseBuilder builder = new HttpResponseBuilder(original); new JPEGOptimizer(config, builder, JpegImageUtils.getJpegImageData(builder.getContentBytes(), "")) .rewrite(JPEGOptimizer.readJpeg(original.getResponse())); return builder.create(); }
HttpResponse rewrite(HttpResponse original, OptimizerConfig config) throws IOException, ImageReadException { HttpResponseBuilder builder = new HttpResponseBuilder(original); new JPEGOptimizer(config, builder, JpegImageUtils.getJpegImageData(builder.getContentBytes(), "")) .rewrite(JPEGOptimizer.readJpeg(original.getResponse())); return builder.create(); }
@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()); }
@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()); }