mirror of
https://github.com/haraldk/TwelveMonkeys.git
synced 2025-08-03 11:35:29 -04:00
Fixed test cases that failed on JDK 1.6.0_17 (something's up with the JPEG encoding/default BG color of transparent images...).
This commit is contained in:
parent
3d4d60c664
commit
d2742b36de
@ -1,5 +1,6 @@
|
|||||||
package com.twelvemonkeys.servlet.image;
|
package com.twelvemonkeys.servlet.image;
|
||||||
|
|
||||||
|
import com.twelvemonkeys.image.ImageUtil;
|
||||||
import com.twelvemonkeys.io.FileUtil;
|
import com.twelvemonkeys.io.FileUtil;
|
||||||
import com.twelvemonkeys.servlet.OutputStreamAdapter;
|
import com.twelvemonkeys.servlet.OutputStreamAdapter;
|
||||||
import org.jmock.Mock;
|
import org.jmock.Mock;
|
||||||
@ -165,11 +166,31 @@ public class ImageServletResponseImplTestCase extends MockObjectTestCase {
|
|||||||
assertTrue("Content has no data", out.size() > 0);
|
assertTrue("Content has no data", out.size() > 0);
|
||||||
|
|
||||||
// Test that image data is still readable
|
// Test that image data is still readable
|
||||||
|
/*
|
||||||
|
File tempFile = File.createTempFile("imageservlet-test-", ".jpeg");
|
||||||
|
FileOutputStream stream = new FileOutputStream(tempFile);
|
||||||
|
out.writeTo(stream);
|
||||||
|
stream.close();
|
||||||
|
System.err.println("open " + tempFile);
|
||||||
|
*/
|
||||||
|
|
||||||
BufferedImage outImage = ImageIO.read(new ByteArrayInputStream(out.toByteArray()));
|
BufferedImage outImage = ImageIO.read(new ByteArrayInputStream(out.toByteArray()));
|
||||||
assertNotNull(outImage);
|
assertNotNull(outImage);
|
||||||
assertEquals(IMAGE_DIMENSION_PNG.width, outImage.getWidth());
|
assertEquals(IMAGE_DIMENSION_PNG.width, outImage.getWidth());
|
||||||
assertEquals(IMAGE_DIMENSION_PNG.height, outImage.getHeight());
|
assertEquals(IMAGE_DIMENSION_PNG.height, outImage.getHeight());
|
||||||
assertSimilarImage(ImageIO.read(mContext.getResource("/" + IMAGE_NAME_PNG)), outImage, 96f);
|
|
||||||
|
BufferedImage image = flatten(ImageIO.read(mContext.getResource("/" + IMAGE_NAME_PNG)), Color.BLACK);
|
||||||
|
|
||||||
|
/*
|
||||||
|
tempFile = File.createTempFile("imageservlet-test-", ".png");
|
||||||
|
stream = new FileOutputStream(tempFile);
|
||||||
|
ImageIO.write(image, "PNG", stream);
|
||||||
|
stream.close();
|
||||||
|
System.err.println("open " + tempFile);
|
||||||
|
*/
|
||||||
|
|
||||||
|
// JPEG compression trashes the image completely...
|
||||||
|
assertSimilarImage(image, outImage, 144f);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -200,11 +221,46 @@ public class ImageServletResponseImplTestCase extends MockObjectTestCase {
|
|||||||
assertTrue("Content has no data", out.size() > 0);
|
assertTrue("Content has no data", out.size() > 0);
|
||||||
|
|
||||||
// Test that image data is still readable
|
// Test that image data is still readable
|
||||||
|
/*
|
||||||
|
File tempFile = File.createTempFile("imageservlet-test-", ".jpeg");
|
||||||
|
FileOutputStream stream = new FileOutputStream(tempFile);
|
||||||
|
out.writeTo(stream);
|
||||||
|
stream.close();
|
||||||
|
System.err.println("open " + tempFile);
|
||||||
|
*/
|
||||||
|
|
||||||
BufferedImage outImage = ImageIO.read(new ByteArrayInputStream(out.toByteArray()));
|
BufferedImage outImage = ImageIO.read(new ByteArrayInputStream(out.toByteArray()));
|
||||||
assertNotNull(outImage);
|
assertNotNull(outImage);
|
||||||
assertEquals(IMAGE_DIMENSION_GIF.width, outImage.getWidth());
|
assertEquals(IMAGE_DIMENSION_GIF.width, outImage.getWidth());
|
||||||
assertEquals(IMAGE_DIMENSION_GIF.height, outImage.getHeight());
|
assertEquals(IMAGE_DIMENSION_GIF.height, outImage.getHeight());
|
||||||
assertSimilarImage(ImageIO.read(mContext.getResource("/" + IMAGE_NAME_GIF)), outImage, 96f);
|
|
||||||
|
BufferedImage image = flatten(ImageIO.read(mContext.getResource("/" + IMAGE_NAME_GIF)), Color.WHITE);
|
||||||
|
|
||||||
|
/*
|
||||||
|
tempFile = File.createTempFile("imageservlet-test-", ".png");
|
||||||
|
stream = new FileOutputStream(tempFile);
|
||||||
|
ImageIO.write(image, "PNG", stream);
|
||||||
|
stream.close();
|
||||||
|
System.err.println("open " + tempFile);
|
||||||
|
*/
|
||||||
|
|
||||||
|
assertSimilarImage(image, outImage, 96f);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static BufferedImage flatten(final BufferedImage pImage, final Color pBackgroundColor) {
|
||||||
|
BufferedImage image = ImageUtil.toBuffered(pImage, BufferedImage.TYPE_INT_ARGB);
|
||||||
|
|
||||||
|
Graphics2D g = image.createGraphics();
|
||||||
|
try {
|
||||||
|
g.setComposite(AlphaComposite.DstOver);
|
||||||
|
g.setColor(pBackgroundColor);
|
||||||
|
g.fillRect(0, 0, pImage.getWidth(), pImage.getHeight());
|
||||||
|
}
|
||||||
|
finally {
|
||||||
|
g.dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
return image;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -261,6 +317,7 @@ public class ImageServletResponseImplTestCase extends MockObjectTestCase {
|
|||||||
assertNotNull(outImage);
|
assertNotNull(outImage);
|
||||||
assertEquals(image.getWidth(), outImage.getWidth());
|
assertEquals(image.getWidth(), outImage.getWidth());
|
||||||
assertEquals(image.getHeight(), outImage.getHeight());
|
assertEquals(image.getHeight(), outImage.getHeight());
|
||||||
|
assertSimilarImage(image, outImage, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Test with AOI attributes (rename thes to source-region?)
|
// TODO: Test with AOI attributes (rename thes to source-region?)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user