知识大全 Java图片处理 文字水印 图片水印 缩放 补白

Posted 水印

篇首语:百川东到海,何时复西归?少壮不努力,老大徒伤悲。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java图片处理 文字水印 图片水印 缩放 补白相关的知识,希望对你有一定的参考价值。

Java图片处理 文字水印 图片水印 缩放 补白  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  package util;

  import java awt AlphaComposite;

  import java awt Color;

  import java awt Font;

  import java awt Graphics D;

  import java awt Image;

  import java awt geom AffineTransform;

  import java awt image AffineTransformOp;

  import java awt image BufferedImage;

  import java io File;

  import java io IOException;

  import javax imageio ImageIO;

  /**

  * @author Eric Xu

  *

  */

  public final class ImageUtils

  /**

  * 图片水印

  * @param pressImg 水印图片

  * @param targetImg 目标图片

  * @param x 修正值 默认在中间

  * @param y 修正值 默认在中间

  * @param alpha 透明度

  */

  public final static void pressImage(String pressImg String targetImg int x int y float alpha)

  try

  File img = new File(targetImg);

  Image src = ImageIO read(img);

  int wideth = src getWidth(null);

  int height = src getHeight(null);

  BufferedImage image = new BufferedImage(wideth height BufferedImage TYPE_INT_RGB);

  Graphics D g = image createGraphics();

  g drawImage(src wideth height null);

  //水印文件

  Image src_biao = ImageIO read(new File(pressImg));

  int wideth_biao = src_biao getWidth(null);

  int height_biao = src_biao getHeight(null);

  g setComposite(AlphaComposite getInstance(AlphaComposite SRC_ATOP alpha));

  g drawImage(src_biao (wideth wideth_biao) / (height height_biao) / wideth_biao height_biao null);

  //水印文件结束

  g dispose();

  ImageIO write((BufferedImage) image jpg img);

   catch (Exception e)

  e printStackTrace();

  

  

  /**

  * 文字水印

  * @param pressText 水印文字

  * @param targetImg 目标图片

  * @param fontName 字体名称

  * @param fontStyle 字体样式

  * @param color 字体颜色

  * @param fontSize 字体大小

  * @param x 修正值

  * @param y 修正值

  * @param alpha 透明度

  */

  public static void pressText(String pressText String targetImg String fontName int fontStyle Color color int fontSize int x int y float alpha)

  try

  File img = new File(targetImg);

  Image src = ImageIO read(img);

  int width = src getWidth(null);

  int height = src getHeight(null);

  BufferedImage image = new BufferedImage(width height BufferedImage TYPE_INT_RGB);

  Graphics D g = image createGraphics();

  g drawImage(src width height null);

  g setColor(color);

  g setFont(new Font(fontName fontStyle fontSize));

  g setComposite(AlphaComposite getInstance(AlphaComposite SRC_ATOP alpha));

  g drawString(pressText (width (getLength(pressText) * fontSize)) / + x (height fontSize) / + y);

  g dispose();

  ImageIO write((BufferedImage) image jpg img);

   catch (Exception e)

  e printStackTrace();

  

  

  /**

  * 缩放

  * @param filePath 图片路径

  * @param height 高度

  * @param width 宽度

  * @param bb 比例不对时是否需要补白

  */

  public static void resize(String filePath int height int width boolean bb)

  try

  double ratio = ; //缩放比例

  File f = new File(filePath);

  BufferedImage bi = ImageIO read(f);

  Image itemp = bi getScaledInstance(width height bi SCALE_SMOOTH);

  //计算比例

  if ((bi getHeight() > height) || (bi getWidth() > width))

  if (bi getHeight() > bi getWidth())

  ratio = (new Integer(height)) doubleValue() / bi getHeight();

   else

  ratio = (new Integer(width)) doubleValue() / bi getWidth();

  

  AffineTransformOp op = new AffineTransformOp(AffineTransform getScaleInstance(ratio ratio) null);

  itemp = op filter(bi null);

  

  if (bb)

  BufferedImage image = new BufferedImage(width height BufferedImage TYPE_INT_RGB);

  Graphics D g = image createGraphics();

  g setColor(Color white);

  g fillRect( width height);

  if (width == itemp getWidth(null))

  g drawImage(itemp (height itemp getHeight(null)) / itemp getWidth(null) itemp getHeight(null) Color white null);

  else

  g drawImage(itemp (width itemp getWidth(null)) / itemp getWidth(null) itemp getHeight(null) Color white null);

  g dispose();

  itemp = image;

  

  ImageIO write((BufferedImage) itemp jpg f);

   catch (IOException e)

  e printStackTrace();

  

  

  public static void main(String[] args) throws IOException

  pressImage( D:\\\\shuiyin png D:\\\\test jpg f);

  pressText( 我是文字水印 D:\\\\test jpg 微软雅黑 Color white f);

  resize( D:\\\\test jpg true);

  

  public static int getLength(String text)

  int length = ;

  for (int i = ; i < text length(); i++)

  if (new String(text charAt(i) + ) getBytes() length > )

  length += ;

   else

  length += ;

  

  

  return length / ;

  

cha138/Article/program/Java/hx/201311/26874

相关参考

知识大全 Java图片添加水印

Java图片添加水印  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  importjavaawt*

知识大全 java.imageIo给图片添加水印的实现代码

java.imageIo给图片添加水印的实现代码  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!最近

知识大全 实现给上传图片加水印图案[2]

PHP实例:实现给上传图片加水印图案[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  <

知识大全 实现给上传图片加水印图案[1]

PHP实例:实现给上传图片加水印图案[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  用PH

知识大全 php给上传图片加图片水印

 <formaction="<?=$_SERVER[PHP_SELF]?>"method="post"enctype="multipart/formdata"name=fo

知识大全 aspjpeg 给上传图片添加水印

  callwater_jpeg(filenameB)  调用aspjpeg组件生成缩略图Subsmall_Jpeg(filenameBfilenameS) SetJpeg=ServerCr

知识大全 asp.net中水印的实现代码

  水印是为了防止别盗用我们的图片  两种方式实现水印效果  )可以在用户上传时添加水印  a)好处:与种方法相比用户每次读取此图片时服务器直接发送给客户就行了  b)缺点:破坏了原始图片  )通过全

知识大全 在修手机相簿里。图片上写字。

在修手机相簿里。图片上写字。手机相簿里图片要想新增文字或是水印,可以用手机自带软体就可以,再就是用美图秀秀简图pixlr等都可以在手机相簿的图片里写字。诺基亚925怎么在相簿图片上写字你好,爱应用-W

知识大全 在Delphi中实现图片的旋转、缩放

在Delphi中实现图片的旋转、缩放  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 好长时间没有写

知识大全 jquery图片等比例缩放程序

很多时间特别是文章都会有图片是吧如果我们固定图片大小那就会变形了影响美观现在我们来一个实用的利用jquery来控制图片等比例缩放代码吧当然这是只等比例缩放图片大小的一种方法哦还有cssjs等很多时间特