Package com.alibaba.simpleimage

Source Code of com.alibaba.simpleimage.DrawTextTest

/**
* 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();
            }
        }
    }
}
TOP

Related Classes of com.alibaba.simpleimage.DrawTextTest

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.