JMAGE 处理图片、给图片加水印

战友是梦,睡也思恋;战友是魂,嵌入心田;
战友是金,沉沉甸甸;战友是缘,一世相牵;
战友是路,越走越宽,战友是福,吉祥无边。
祝曾经当过兵的、现在在当兵的、军人家属节日快乐!

处理图片、给图片加水印

JMAGE:是一个开源的JAVA图片处理框架,下载地址:http://jmage.sourceforge.net/
他能够非常方便对图片进行合并、加边框、加水印等操作,使用起来也非常方便。

1、下载框架,解压后将lib包中的*.jar加入工程中。
2、COPY taglibs-image.tld文件到WEB-INF\lib目录下。
3、配置JMAGE servlet到web.xml文件中:
<servlet>
     <servlet-name>jmage</servlet-name>
     <servlet-class>org.jmage.mapper.ServletMapper</servlet-class>
     <load-on-startup>0</load-on-startup>
 </servlet>

 <servlet-mapping>
     <servlet-name>jmage</servlet-name>
     <url-pattern>/jmage/*</url-pattern>
 </servlet-mapping>


<taglib>
        <taglib-uri>jmage</taglib-uri>
        <taglib-location>/WEB-INF/lib/jmage.tld</taglib-location>
</taglib>

4、定义一个全局的响应请求图片的配置文件jmage.xml放置在WEB-INF\classes或src目录下。
<jmage>
 
    <properties>
        <property name="fixPNGonIE" value="true"/>
        <property name="cachedir" value="cache"/>

        <!-- Simple filter names and their implementing classes/-->
        <property name="brighten"           value="org.jmage.filter.color.BrightenFilter"/>
        <property name="colorize"           value="org.jmage.filter.color.ColorizeFilter"/>
        <property name="darken"             value="org.jmage.filter.color.DarkenFilter"/>
        <property name="rgb"                value="org.jmage.filter.color.Index2RGBConverterFilter"/>
        <property name="greyscale"          value="org.jmage.filter.color.RGB2GreyScaleConverterFilter"/>
        <property name="background"         value="org.jmage.filter.merge.BackgroundImageFilter"/>
        <property name="overlay"            value="org.jmage.filter.merge.ImageOverlayFilter"/>
        <property name="text"               value="org.jmage.filter.merge.TextOverlayFilter"/>
        <property name="resize"             value="org.jmage.filter.size.BicubicResizeFilter"/>
        <property name="border"             value="org.jmage.filter.size.BorderExtenderFilter"/>
        <property name="crop"               value="org.jmage.filter.size.CropFilter"/>
        <property name="xrotate"            value="org.jmage.filter.size.ExtendingRotationFilter"/>
        <property name="rotate"             value="org.jmage.filter.size.NonExtendingRotationFilter"/>
        <property name="smartresize"        value="org.jmage.filter.size.SmartResizeFilter"/>
        <property name="edgeenhancement"    value="org.jmage.filter.spatial.EdgeEnhancementFilter"/>
        <property name="blur"               value="org.jmage.filter.spatial.GaussianBlurFilter"/>
        <property name="lowpass"            value="org.jmage.filter.spatial.LowPassFilter"/>
        <property name="mean"               value="org.jmage.filter.spatial.MeanFilter"/>
        <property name="sharpen"            value="org.jmage.filter.spatial.SharpenFilter"/>
        <property name="ultrasharpen"       value="org.jmage.filter.spatial.UltraSharpenFilter"/>
        <property name="unsharpmask"        value="org.jmage.filter.spatial.UnsharpMaskFilter"/>

        <!-- Simple filter names for some example xml chains that ship with jmage /-->
        <property name="shadow"             value="org.jmage.filterchain.frame.Shadow"/>
        <property name="instantphoto"       value="org.jmage.filterchain.frame.InstantPhoto"/>
        <property name="plasma"             value="org.jmage.filterchain.frame.PlasmaTv"/>
        <property name="frame"              value="org.jmage.filterchain.frame.WoodenFrame"/>
        <property name="sepia"              value="org.jmage.filterchain.other.Sepia"/>
        <property name="watermark"          value="org.jmage.filterchain.watermark.TextWaterMark"/>
    </properties>

   <!-- Add custom ResourceFactories here /-->
    <resourcemanager pool="50">
        <factory class="org.jmage.resource.DefaultImageFactory" cachesize="25" cachetype="memory"/>
        <factory class="org.jmage.resource.FontFactory"/>
    </resourcemanager>

    <!-- Add custom FilterChainFactories here /-->
    <filterchainmanager pool="50">
        <factory class="org.jmage.filterchain.SimpleFilterChainFactory"/>
        <factory class="org.jmage.filterchain.XmlFilterChainFactory"/>
    </filterchainmanager>

    <!-- Add custom ImageEncoders here /-->
    <encodermanager pool="50">
        <factory class="org.jmage.encoder.JDKImageEncoder"/>
        <factory class="org.jmage.encoder.GifEncoder"/>
    </encodermanager>

    <!-- Change this to any RequestDispatcher implementation /-->
    <requestdispatcher class="org.jmage.dispatcher.FilteringRequestDispatcher" pool="50" cachesize="50" cachetype="disk"/>

</jmage>

5、页面引用标签
<%@taglib uri="jmage" prefix="jm"%>
(1)普通引用模式:<img src="<%=request.getContextPath()%>/images/june_vase.jpg"/>
(2)通过配置文件引用模式:<img src="<%=request.getContextPath()%>?image=images/jmage_pocketreference.png&chain=org.jmage.filterchain.watermark.TextWaterMark"/>

6、效果图片

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值