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

本文介绍了JMAGE,一个开源的JAVA图片处理框架,详细解释了如何安装配置该框架,并展示了如何利用它来处理图片,包括加水印、调整大小等功能。

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

处理图片、给图片加水印

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、效果图片

 

 

基于51单片机,实现对直流电机的调速、测速以及正反转控制。项目包含完整的仿真文件、源程序、原理图和PCB设计文件,适合学习和实践51单片机在电机控制方面的应用。 功能特点 调速控制:通过按键调整PWM占空比,实现电机的速度调节。 测速功能:采用霍尔传感器非接触式测速,实时显示电机转速。 正反转控制:通过按键切换电机的正转和反转状态。 LCD显示:使用LCD1602液晶显示屏,显示当前的转速和PWM占空比。 硬件组成 主控制器:STC89C51/52单片机(与AT89S51/52、AT89C51/52通用)。 测速传感器:霍尔传感器,用于非接触式测速。 显示模块:LCD1602液晶显示屏,显示转速和占空比。 电机驱动:采用双H桥电路,控制电机的正反转和调速。 软件设计 编程语言:C语言。 开发环境:Keil uVision。 仿真工具:Proteus。 使用说明 液晶屏显示: 第一行显示电机转速(单位:转/分)。 第二行显示PWM占空比(0~100%)。 按键功能: 1键:速键,短按占空比1,长按连续。 2键:减速键,短按占空比减1,长按连续减。 3键:反转切换键,按下后电机反转。 4键:正转切换键,按下后电机正转。 5键:开始暂停键,按一下开始,再按一下暂停。 注意事项 磁铁和霍尔元件的距离应保持在2mm左右,过近可能会在电机转动时碰到霍尔元件,过远则可能导致霍尔元件无法检测到磁铁。 资源文件 仿真文件:Proteus仿真文件,用于模拟电机控制系统的运行。 源程序:Keil uVision项目文件,包含完整的C语言源代码。 原理图:电路设计原理图,详细展示了各模块的连接方式。 PCB设计:PCB布局文件,可用于实际电路板的制作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值