`
zxz_java
  • 浏览: 83785 次
社区版块
存档分类
最新评论

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

 

 

分享到:
评论

相关推荐

    winform 图片加水印文字和水印图片

    总的来说,这个WinForm应用提供了一个方便的工具,可以对图片进行多种操作,如加水印(文字和图片)、等比例缩放和压缩,这对于日常需要处理图片的工作非常实用。通过理解并应用GDI+的图形处理技术,开发者可以...

    给图片加水印

    VB(Visual Basic)是一种由微软开发的编程环境,它提供了简单易用的图形用户界面(GUI)创建工具和丰富的功能,使得创建给图片加水印的小程序变得容易。下面我们将深入探讨如何使用VB来实现这个功能,以及涉及到的...

    给图片加水印 批量给图片加水印

    "给图片加水印 批量给图片加水印"这个主题涉及到图像处理技术,特别是批量处理方面,这对于摄影师、设计师或者内容创作者来说非常重要。下面我们将详细探讨如何实现这一功能,以及涉及到的相关技术。 首先,我们要...

    带水印的图片给图片加水印

    你可以加载一个透明PNG作为水印,然后使用`Image.open()`和`Image.paste()`方法来添加到图片上。此外,还可以调整水印的位置、透明度、旋转角度等,以达到理想的效果。 对于压缩包中的"Watermark"文件,这可能是一...

    pb给图片加水印的方法

    2. **加载图片**:使用Image类的FromFile方法加载要添加水印的图片。 3. **创建Graphics对象**:通过Image对象的CreateGraphics方法创建一个Graphics对象,它是绘制图像的基础。 4. **设置水印文本和样式**:定义...

    delphi实现给图片加水印2用ImageEn控件

    ### Delphi 实现给图片添加水印:使用 ImageEn 控件 #### 背景介绍 在 Delphi 开发环境中,实现对图像处理的需求时,经常会遇到需要为图片添加水印的情况。添加水印不仅可以保护图片版权,还能提高品牌识别度。本文...

    给一张图片加 水印(源代码)

    总结来说,给图片加水印涉及到图像处理技术,包括选择合适的库、设计水印样式、定位水印、处理透明度,以及最终保存结果。通过编程实现,我们可以灵活控制水印的各种属性,以满足不同需求。提供的`watermark`可能是...

    C# 批量加水印(含文字水印以及图片水印).rar

    这使得即使没有深入的图像处理经验,用户也能方便地在自己的项目中集成批量加水印的功能。 总的来说,C#的这个批量加水印解决方案结合了GDI+的强大功能,提供了一个高效且灵活的方法,能够帮助开发者快速实现水印...

    net给图片加水印

    // 在这里处理图片 } } ``` 2. **处理GIF图片**:因为直接对GIF图片使用`Graphics.FromImage()`会遇到问题,所以需要先根据GIF图片的尺寸创建一个新的位图,然后将原图绘制到这个新位图上。 ```csharp using ...

    C#实现图片加水印

    在C#编程中,给图片添加水印是一项常见的...总之,C#提供了一套完整的API来处理图像和水印,使得在程序中实现图片加水印变得简单易行。通过理解并熟练运用上述技术,开发者可以轻松地为自己的项目添加这一实用功能。

    html2canvas 网页对图片加水印

    5. **处理图片格式和质量**:HTML2Canvas默认生成的是PNG格式,如果需要其他格式(如JPEG),可以在调用`toDataURL`时指定。同时,可以通过`onrendered`回调函数调整图片的质量。 6. **优化与兼容性**:HTML2Canvas...

    C# 图片添加水印(图片或者文字)

    在C#编程中,添加水印到图片是一项常见的任务,特别是在设计软件或处理图像的应用程序中。本示例主要关注如何使用C#和WPF(Windows Presentation Foundation)技术来实现这个功能,既可以添加图片水印,也可以添加...

    Java给图片加水印

    在提供的压缩包文件名列表中,我们看到有三个与“给图片加水印”相关的文本文件:`给图片加水印2.txt`、`给图片加水印1.txt`和`给图片加水印.txt`。这些文件可能包含了具体的代码示例、步骤解释或不同实现方式。通过...

    Vb图片加水印组件.rar

    "Vb图片加水印组件.rar" 提供了一个实用的技术方案,帮助开发者实现这一功能。该组件使得在图片上叠加图片或文字水印变得简单,通过VB的内置控件Picture1.Picture属性进行操作,并能将处理后的图片保存为新的格式。 ...

    Batch Image Resizer_图片修改大小_加水印.rar

    对于经常需要处理图片的用户,还可以保存常用的设置为预设,以便快速调用。 4. 应用场景:Batch Image Resizer适用于各种场合。例如,摄影师可以批量调整照片尺寸,以便上传到不同的在线画廊或社交媒体;设计师可以...

    springboot实现上传图片添加水印

    接下来,我们需要处理图片添加水印的逻辑。这个过程通常包括读取图片,生成水印(可以是文本或图像),然后将水印合并到原始图片上。在Java中,我们可以使用Java Advanced Imaging (JAI)库或者更现代的ImageMagick的...

    图片批量加水印中文版

    在图像处理领域,批量操作是...其直观的中文界面和强大的定制功能,使得即使是初级用户也能轻松上手,快速完成图片加水印的工作。通过使用这款软件,用户可以有效地保护自己的作品,同时增加品牌辨识度,提高工作效率。

    Winform图片加水印

    通过以上步骤,你就可以在Winform应用中实现一个功能完善的图片加水印工具,包括图片和文字水印,以及透明度和字体调整。这个过程涉及了Windows Forms控件的使用、图像处理和图形绘制,是.NET框架中基础但实用的技能...

    Delphi图片与Base64互转及图片添加水印

    本话题主要探讨如何在Delphi中实现图片与Base64编码之间的转换,并且涉及到给图片添加水印的功能,包括水印图片和文字。这些功能在很多实际应用场景中非常常见,如网页上传图片、数据存储以及品牌保护等。 首先,...

Global site tag (gtag.js) - Google Analytics