/** * Project: headquarters-biz-image File Created at 2010-6-17 $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.awt.Color; import java.awt.Font; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import junit.framework.TestCase; import org.apache.commons.io.IOUtils; import com.alibaba.simpleimage.font.FontManager; import com.alibaba.simpleimage.render.CornerDrawTextItem; import com.alibaba.simpleimage.render.DrawTextItem; import com.alibaba.simpleimage.render.DrawTextParameter; import com.alibaba.simpleimage.render.DrawTextRender; import com.alibaba.simpleimage.render.FixDrawTextItem; import com.alibaba.simpleimage.render.FootnoteDrawTextItem; import com.alibaba.simpleimage.render.ReadRender; import com.alibaba.simpleimage.render.WriteRender; /** * TODO Comment of DrawTextTest * * @author wendell */ public class DrawTextTest extends TestCase { static File path = new File("./src/test/resources/conf.test/simpleimage/scale"); static File rpath = new File("./src/test/resources/conf.test/simpleimage/result"); static final Color FONT_COLOR = new Color(255, 255, 255, 115); static final Color FONT_SHADOW_COLOR = new Color(170, 170, 170, 77); static final Font FONT = new Font("黑体", Font.PLAIN, 10); protected DrawTextParameter getParam() { DrawTextParameter param = new DrawTextParameter(); param.addTextInfo(new FixDrawTextItem("这是测试中文好不好用")); return param; } protected void write(ImageRender dr) throws SimpleImageException, IOException { ImageRender wr = new WriteRender(dr, rpath.getCanonicalPath() + File.separator + "DRAWTEXT_334.jpg"); wr.render(); wr.dispose(); } protected String getFileStr() throws IOException { return path.getCanonicalPath() + File.separator + "334.jpg"; } /** * Test method for * {@link com.alibaba.simpleimage.render.DrawTextRender#DrawTextRender(java.io.InputStream, com.alibaba.simpleimage.render.DrawTextParameter)} * . */ public void testDrawTextRenderInputStreamDrawTextParameter() throws Exception { InputStream file = new FileInputStream(getFileStr()); ImageRender dr = new DrawTextRender(file, getParam()); write(dr); file.close(); } /** * Test method for * {@link com.alibaba.simpleimage.render.DrawTextRender#DrawTextRender(java.io.InputStream, boolean, com.alibaba.simpleimage.render.DrawTextParameter)} * . */ public void testDrawTextRenderInputStreamBooleanDrawTextParameter() throws Exception { InputStream file = new FileInputStream(getFileStr()); ImageRender dr = new DrawTextRender(file, true, getParam()); write(dr); file.close(); } public void testCornerDrawTextItem() throws Exception { CornerDrawTextItem item = new CornerDrawTextItem("阿里巴巴"); doDrawImageText("334.jpg", "corner-", item); doDrawImageText("yuan.jpg", "corner-", item); doDrawImageText("snow.jpg", "corner-", item); doDrawImageText("st.jpg", "corner-", item); } public void testFixDrawTextItem() throws Exception { FixDrawTextItem item = new FixDrawTextItem("远华贸易实业有限公司", new Color(255, 255, 255, 115), new Color(170, 170, 170, 77), FontManager.getFont("方正黑体"), 10, FixDrawTextItem.Position.BOTTOM_RIGHT, 0.5f); doDrawImageText("334.jpg", "fix-", item); doDrawImageText("yuan.jpg", "fix-", item); doDrawImageText("snow.jpg", "fix-", item); doDrawImageText("st.jpg", "fix-", item); } public void testFootnoteDrawTextItem() throws Exception { FootnoteDrawTextItem item = new FootnoteDrawTextItem("阿里巴巴网络(中国)有限公司", "cheneychenc.alibaba.com.cn"); doDrawImageText("334.jpg", "footnote-", item); doDrawImageText("yuan.jpg", "footnote-", item); doDrawImageText("snow.jpg", "footnote-", item); doDrawImageText("st.jpg", "footnote-", item); } public void doDrawImageText(String imageName, String desc, DrawTextItem... items) throws Exception { InputStream in = null; ImageRender fr = null; try { in = new FileInputStream(new File(path, imageName)); ImageRender rr = new ReadRender(in); DrawTextParameter dp = new DrawTextParameter(); if (items != null) { for (DrawTextItem itm : items) { dp.addTextInfo(itm); } } DrawTextRender dtr = new DrawTextRender(rr, dp); fr = new WriteRender(dtr, new File(rpath, "DRAWTEXT_" + desc + imageName.substring(0, imageName.lastIndexOf(".")) + ".jpg")); fr.render(); } finally { IOUtils.closeQuietly(in); if (fr != null) { fr.dispose(); } } } }