Java实现的微信图片处理工具类【裁剪,合并,等比例缩放等】

本文实例讲述了Java实现的微信图片处理工具类。分享给大家供大家参考,具体如下:

现在 外面核心,图片文章比较少,看了拷贝代码,而用不了,用相应jar包处理,很多等比例缩放,达不到 想要的给予的期望:本工具类,是之前做微信打印机写的 基于java自带的类,基于rgb。

package com.zjpz.util;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
import java.awt.image.ColorModel;
import java.awt.image.WritableRaster;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
 * 微信图片处理工具
 *
 * @author zhuang.y
 *
 */
public class PictureTool {
  protected static Logger logger = LoggerFactory.getLogger(PictureTool.class);
  public static void main(String[] args) throws IOException {
   File fileOne = new File("c:\\1.jpg");
   BufferedImage imageFirst = ImageIO.read(fileOne);
   int border = 0;
   imageFirst =crop(imageFirst,0,10,297,300);
   File outFile = new File("d:\\2.jpg");
   ImageIO.write(imageFirst, "jpg", outFile);// 写图片
  }
  /**
  * 纵向合图的x坐标像素
  */
  private final static int y_width = 645;
  /**
  * 标准图片的y坐标像素,920,是一般照片,1099是邮票照片
  */
  private final static int y_height = 920;
  /**
  * 裁剪x坐标缩进像素
  */
  private final static int x_retract = 50;
  /**
  * 裁剪y坐标缩进像素
  */
  private final static int y_retract = 50;
  /**
  * 系统默认图片边框为20
  */
  public final static int BORDER = 20;
  /**
  * 横向合成图片
  */
  public static void xPic(String first, String second, String out) {
   try {
     /* 1 读取第一张图片 */
     File fileOne = new File(first);
     BufferedImage imageFirst = ImageIO.read(fileOne);
     int width = imageFirst.getWidth();// 图片宽度
     int height = imageFirst.getHeight();// 图片高度
     int[] imageArrayFirst = new int[width * height];// 从图片中读取RGB
     imageArrayFirst = imageFirst.getRGB(0, 0, width, height, imageArrayFirst, 0, width);
     /* 1 对第二张图片做相同的处理 */
     File fileTwo = new File(second);
     BufferedImage imageSecond = ImageIO.read(fileTwo);
     int widthTwo = imageSecond.getWidth();// 图片宽度
     int heightTwo = imageSecond.getHeight();// 图片高度
     int[] imageArraySecond = new int[widthTwo * heightTwo];
     imageArraySecond = imageSecond.getRGB(0, 0, widthTwo, heightTwo, imageArraySecond, 0, widthTwo);
     int h = height;
     if (height < heightTwo) {
      h = heightTwo;
     }
     // 生成新图片
     BufferedImage imageResult = new BufferedImage(width + widthTwo, h, BufferedImage.TYPE_INT_RGB);
     imageResult.setRGB(0, 0, width, height, imageArrayFirst, 0, width);// 设置左半部分的RGB
     imageResult.setRGB(width, 0, widthTwo, heightTwo, imageArraySecond, 0, widthTwo);// 设置右半部分的RGB
     File outFile = new File(out);
     ImageIO.write(imageResult, "jpg", outFile);// 写图片
   } catch (Exception e) {
     logger.error("横向合成图片出错....", e);
   }
  }
  /**
  * 纵向合成图片
  *
  * @param first
  *      放上面的图片路径
  * @param second
  *      放下面的图片路径
  * @param out
  *      文件输出目录
  * @param border
  *      图片预留边框
  */
  public static boolean yPic(String first, String second, String out, int border) {
   boolean isOk = true;
   try {
     /* 1 读取第一张图片 */
     File fileOne = new File(first);
     BufferedImage imageFirst = ImageIO.read(fileOne);
     int width = imageFirst.getWidth();// 图片宽度
     int height = imageFirst.getHeight();// 图片高度
     /* 2对第二张图片做相同的处理 */
     File fileTwo = new File(second);
     BufferedImage imageSecond = ImageIO.read(fileTwo);
     int widthTwo = imageSecond.getWidth();// 图片宽度
     int heightTwo = imageSecond.getHeight();// 图片高度
     /* 1 读取第一张图片begin */
     int t_height = y_height - heightTwo;
     // 图片是横图,逆时针旋转90度再等比缩放
     if (width > height) {
      imageFirst = rotateImageLeft90(imageFirst);
     }
     // 等比缩放
     imageFirst = resize(imageFirst, y_width, t_height);
     // 缩放后图片的大小
     width = imageFirst.getWidth();// 图片宽度
     height = imageFirst.getHeight();// 图片高度
     // 等比缩放后,图片还是太大,裁剪图片
     boolean a_w, a_h = false;
     if ((a_w = (width > y_width)) || (a_h = (height > t_height))) {
      // 起始位置x,y坐标
      int s_w = 0, s_h = 0;
      // 裁剪x坐标时,缩进属性x_retract
      if (a_w) {
        int temp = width - y_width;
        if (temp > x_retract) {
         temp = x_retract;
        } else {
         temp = 0;
        }
        s_w = s_w + temp;
      }
      // 裁剪y坐标时,缩进属性y_retract
      if (a_h) {
        int temp = height - t_height;
        if (temp > y_retract) {
         temp = y_retract;
        } else {
         temp = 0;
        }
        s_h = s_h + temp;
      }
      imageFirst = crop(imageFirst, s_w, s_h, y_width, t_height);
      width = imageFirst.getWidth();
      height = imageFirst.getHeight();
     }
     int[] imageArrayFirst = new int[(width - border) * height];// 从图片中读取RGB
     imageArrayFirst = imageFirst.getRGB(border, 0, (width - border), height, imageArrayFirst, 0,
        (width - border));
     /* 2对第二张图片做相同的处理begin */
     int[] imageArraySecond = new int[widthTwo * heightTwo];
     imageArraySecond = imageSecond.getRGB(0, 0, widthTwo, heightTwo, imageArraySecond, 0, widthTwo);
     int w = width;
     if (width < widthTwo) {
      w = widthTwo;
     }
     // 图片高度
     int h = height + heightTwo;
     // 生成新图片
     BufferedImage imageResult = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);
     // 解决黑色背景,默认的TYPE_INT_RGB都是0,都是黑色的
     Graphics2D g = (Graphics2D) imageResult.createGraphics();
     g.setColor(Color.WHITE);
     g.fillRect(0, 0, w, h);// 填充整个屏幕
     g.dispose();
     // 留边框
     imageResult.setRGB(border, 0, (width - border * 2), height, imageArrayFirst, 0, (width - border));// 设置左半部分的RGB
     imageResult.setRGB(0, height, widthTwo, heightTwo, imageArraySecond, 0, widthTwo);// 设置右半部分的RGB
     File outFile = new File(out);
     ImageIO.write(imageResult, "jpg", outFile);// 写图片
   } catch (Exception e) {
     logger.error("纵向合成图片失败....", e);
     isOk = false;
   }
   return isOk;
  }
  /**
  * 全图打印,图片缩放、旋转处理
  *
  * @param source
  *      待处理的图片
  * @param out
  *      处理后文件输出目录
  * @param border
  *      图片预留边框
  */
  public static boolean maigaoPic(String source, String out, int border) {
   boolean isOk = true;
   try {
     /* 1 读取第一张图片 */
     File fileOne = new File(source);
     BufferedImage imageFirst = ImageIO.read(fileOne);
     int width = imageFirst.getWidth();// 图片宽度
     int height = imageFirst.getHeight();// 图片高度
     // 图片是横图,逆时针旋转90度再等比缩放
     if (width > height) {
      imageFirst = rotateImageLeft90(imageFirst);
     }
     // 等比缩放
     imageFirst = resize(imageFirst, y_width, y_height);
     // 缩放后图片的大小
     width = imageFirst.getWidth();// 图片宽度
     height = imageFirst.getHeight();// 图片高度
     // 等比缩放后,图片还是太大,裁剪图片
     boolean a_w, a_h = false;
     if ((a_w = (width > y_width)) || (a_h = (height > y_height))) {
      // 起始位置x,y坐标
      int s_w = 0, s_h = 0;
      // 裁剪x坐标时,缩进属性x_retract
      if (a_w) {
        int temp = width - y_width;
        if (temp > x_retract) {
         temp = x_retract;
        } else {
         temp = 0;
        }
        s_w = s_w + temp;
      }
      // 裁剪y坐标时,缩进属性y_retract
      if (a_h) {
        int temp = height - y_height;
        if (temp > y_retract) {
         temp = y_retract;
        } else {
         temp = 0;
        }
        s_h = s_h + temp;
      }
      imageFirst = crop(imageFirst, s_w, s_h, y_width, y_height);
      width = imageFirst.getWidth();
      height = imageFirst.getHeight();
     }
     int[] imageArrayFirst = new int[(width - border) * height];// 从图片中读取RGB
     imageArrayFirst = imageFirst.getRGB(border, 0, (width - border), height, imageArrayFirst, 0,
        (width - border));
     // 生成新图片
     BufferedImage imageResult = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
     // 解决黑色背景,默认的TYPE_INT_RGB都是0,都是黑色的
     Graphics2D g = (Graphics2D) imageResult.createGraphics();
     g.setColor(Color.WHITE);
     g.fillRect(0, 0, width, height);// 填充整个屏幕
     g.dispose();
     // 留边框
     imageResult.setRGB(border, 0, (width - border * 2), height, imageArrayFirst, 0, (width - border));// 设置左半部分的RGB
     File outFile = new File(out);
     ImageIO.write(imageResult, "jpg", outFile);// 写图片
   } catch (IOException e) {
     logger.error("全图打印,图片缩放、旋转处理失败....", e);
     isOk = false;
   }
   return isOk;
  }
  /**
  * 实现图像的等比缩放
  *
  * @param source
  *      待处理的图片流
  * @param targetW
  *      宽度
  * @param targetH
  *      高度
  * @return
  */
  public static BufferedImage resize(BufferedImage source, int targetW, int targetH) {
   int width = source.getWidth();// 图片宽度
   int height = source.getHeight();// 图片高度
   return zoomInImage(source, targetW, targetH);
   // 图片宽高都太小时,强制放大图片
   /*
   if (width < targetW && height < targetH) {
     return zoomInImage(source, targetW, targetH);
   } else if ((width < targetW && width == height) || (height < targetH && width == height)) {
     return zoomInImage(source, targetW, targetH);
   }
   return null;
   */
  }
  /**
  * 按比例裁剪图片
  *
  * @param source
  *      待处理的图片流
  * @param startX
  *      开始x坐标
  * @param startY
  *      开始y坐标
  * @param endX
  *      结束x坐标
  * @param endY
  *      结束y坐标
  * @return
  */
  public static BufferedImage crop(BufferedImage source, int startX, int startY, int endX, int endY) {
   int width = source.getWidth();
   int height = source.getHeight();
   if (startX <= -1) {
     startX = 0;
   }
   if (startY <= -1) {
     startY = 0;
   }
   if (endX <= -1) {
     endX = width - 1;
   }
   if (endY <= -1) {
     endY = height - 1;
   }
   BufferedImage result = new BufferedImage(endX, endY , source.getType());
   for (int y = startY; y < endY+startY; y++) {
     for (int x = startX; x < endX+startX; x++) {
      int rgb = source.getRGB(x, y);
      result.setRGB(x - startX, y - startY, rgb);
     }
   }
   return result;
  }
  /**
  * 旋转图片为指定角度
  *
  * @param bufferedimage
  *      目标图像
  * @param degree
  *      旋转角度
  * @return
  */
  public static BufferedImage rotateImage(final BufferedImage bufferedimage, final int degree) {
   int w = bufferedimage.getWidth();
   int h = bufferedimage.getHeight();
   int type = bufferedimage.getColorModel().getTransparency();
   BufferedImage img;
   Graphics2D graphics2d;
   (graphics2d = (img = new BufferedImage(h, w, type)).createGraphics()).setRenderingHint(
      RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
   graphics2d.rotate(Math.toRadians(degree), w / 2, h / 2 + (w > h ? (w - h) / 2 : (h - w) / 2));
   graphics2d.drawImage(bufferedimage, 0, 0, null);
   graphics2d.dispose();
   return img;
  }
  /**
  * 图片左转90度
  *
  * @param bufferedimage
  * @return
  */
  public static BufferedImage rotateImageLeft90(BufferedImage bufferedimage) {
   int w = bufferedimage.getWidth();
   int h = bufferedimage.getHeight();
   int type = bufferedimage.getColorModel().getTransparency();
   BufferedImage img;
   Graphics2D graphics2d;
   (graphics2d = (img = new BufferedImage(h, w, type)).createGraphics()).setRenderingHint(
      RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
   graphics2d.rotate(Math.toRadians(270), w / 2, h / 2 + (w - h) / 2);
   graphics2d.drawImage(bufferedimage, 0, 0, null);
   graphics2d.dispose();
   return img;
  }
  /**
  * 图片右转90度
  *
  * @param bufferedimage
  * @return
  */
  public static BufferedImage rotateImageRight90(BufferedImage bufferedimage) {
   int w = bufferedimage.getWidth();
   int h = bufferedimage.getHeight();
   int type = bufferedimage.getColorModel().getTransparency();
   BufferedImage img;
   Graphics2D graphics2d;
   (graphics2d = (img = new BufferedImage(h, w, type)).createGraphics()).setRenderingHint(
      RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
   graphics2d.rotate(Math.toRadians(90), w / 2 - (w - h) / 2, h / 2);
   graphics2d.drawImage(bufferedimage, 0, 0, null);
   graphics2d.dispose();
   return img;
  }
  // 对转
  public File rotateImageOppo(File file) throws Exception {
   BufferedImage bufferedimage = ImageIO.read(file);
   int w = bufferedimage.getWidth();
   int h = bufferedimage.getHeight();
   int type = bufferedimage.getColorModel().getTransparency();
   BufferedImage img;
   Graphics2D graphics2d;
   (graphics2d = (img = new BufferedImage(w, h, type)).createGraphics()).setRenderingHint(
      RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
   graphics2d.rotate(Math.toRadians(180), w / 2, h / 2);
   graphics2d.drawImage(bufferedimage, 0, 0, null);
   graphics2d.dispose();
   ImageIO.write(img, "jpg", file);
   return file;
  }
  /***
  * 图片镜像处理
  *
  * @param file
  * @param FX
  *      0 为上下反转 1 为左右反转
  * @return
  */
  public void imageMisro(File file, int FX) {
   try {
     BufferedImage bufferedimage = ImageIO.read(file);
     int w = bufferedimage.getWidth();
     int h = bufferedimage.getHeight();
     int[][] datas = new int[w][h];
     for (int i = 0; i < h; i++) {
      for (int j = 0; j < w; j++) {
        datas[j][i] = bufferedimage.getRGB(j, i);
      }
     }
     int[][] tmps = new int[w][h];
     if (FX == 0) {
      for (int i = 0, a = h - 1; i < h; i++, a--) {
        for (int j = 0; j < w; j++) {
         tmps[j][a] = datas[j][i];
        }
      }
     } else if (FX == 1) {
      for (int i = 0; i < h; i++) {
        for (int j = 0, b = w - 1; j < w; j++, b--) {
         tmps[b][i] = datas[j][i];
        }
      }
     }
     for (int i = 0; i < h; i++) {
      for (int j = 0; j < w; j++) {
        bufferedimage.setRGB(j, i, tmps[j][i]);
      }
     }
     ImageIO.write(bufferedimage, "jpg", file);
   } catch (Exception e) {
     e.printStackTrace();
   }
  }
  /**
  * 对图片进行强制放大或缩小
  *
  * @param originalImage
  *      原始图片
  * @return
  */
  public static BufferedImage zoomInImage(BufferedImage originalImage, int width, int height) {
   BufferedImage newImage = new BufferedImage(width, height, originalImage.getType());
   Graphics g = newImage.getGraphics();
   g.drawImage(originalImage, 0, 0, width, height, null);
   g.dispose();
   return newImage;
  }
  /**
  * 简易图片识别原理
  *
  * @param img
  *      图片路径
  */
  public static void discernImg(String img) {
   try {
     File fileOne = new File(img);
     BufferedImage bi = ImageIO.read(fileOne);
     // 获取图像的宽度和高度
     int width = bi.getWidth();
     int height = bi.getHeight();
     // 扫描图片
     for (int i = 0; i < height; i++) {
      for (int j = 0; j < width; j++) {// 行扫描
        int dip = bi.getRGB(j, i);
        if (dip == -1)
         System.out.print(" ");
        else
         System.out.print("♦");
      }
      System.out.println();// 换行
     }
   } catch (Exception e) {
     logger.error("图片识别出错", e);
   }
  }
}

更多java相关内容感兴趣的读者可查看本站专题:《Java图片操作技巧汇总》、《java日期与时间操作技巧汇总》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》及《Java数据结构与算法教程》。

希望本文所述对大家java程序设计有所帮助。

(0)

相关推荐

  • Java编程实现基于图的深度优先搜索和广度优先搜索完整代码

    为了解15puzzle问题,了解了一下深度优先搜索和广度优先搜索.先来讨论一下深度优先搜索(DFS),深度优先的目的就是优先搜索距离起始顶点最远的那些路径,而广度优先搜索则是先搜索距离起始顶点最近的那些路径.我想着深度优先搜索和回溯有什么区别呢?百度一下,说回溯是深搜的一种,区别在于回溯不保留搜索树.那么广度优先搜索(BFS)呢?它有哪些应用呢?答:最短路径,分酒问题,八数码问题等.言归正传,这里笔者用java简单实现了一下广搜和深搜.其中深搜是用图+栈实现的,广搜使用图+队列实现的,代码如下:

  • Java实现的图片高质量缩放类定义与用法示例

    本文实例讲述了Java实现的图片高质量缩放类定义与用法.分享给大家供大家参考,具体如下: 找了很多都不理想,最后找个到老外写的,不得不承认老外写的确实牛B. package com.test; import com.sun.image.codec.jpeg.JPEGImageEncoder; import com.sun.image.codec.jpeg.JPEGCodec; import com.sun.image.codec.jpeg.JPEGEncodeParam; import java

  • 邻接表无向图的Java语言实现完整源码

    邻接表无向图的介绍 邻接表无向图是指通过邻接表表示的无向图. 上面的图G1包含了"A,B,C,D,E,F,G"共7个顶点,而且包含了"(A,C),(A,D),(A,F),(B,C),(C,D),(E,G),(F,G)"共7条边. 上图右边的矩阵是G1在内存中的邻接表示意图.每一个顶点都包含一条链表,该链表记录了"该顶点的邻接点的序号".例如,第2个顶点(顶点C)包含的链表所包含的节点的数据分别是"0,1,3":而这"

  • java编程无向图结构的存储及DFS操作代码详解

    图的概念 图是算法中是树的拓展,树是从上向下的数据结构,结点都有一个父结点(根结点除外),从上向下排列.而图没有了父子结点的概念,图中的结点都是平等关系,结果更加复杂. 无向图                                                       有向图 图G=(V,E),其中V代表顶点Vertex,E代表边edge,一条边就是一个定点对(u,v),其中(u,v)∈V. 这两天遇到一个关于图的算法,在网上找了很久没有找到java版的关于数据结构中图的存储及其

  • Java编程实现邻接矩阵表示稠密图代码示例

    我们知道,要表示结点,我们可以用一个一维数组来表示,然而对于结点和结点之间的关系,则无法简单地用一维数组来表示了,我们可以用二维数组来表示,也就是一个矩阵形式的表示方法. 我们假设A是这个二维数组,那么A中的一个元素aij不仅体现出了结点vi和结点vj的关系,而且aij的值正可以表示权值的大小. 邻接矩阵模型类 邻接矩阵模型类的类名为AMWGraph.java,能够通过该类构造一个邻接矩阵表示的图,且提供插入结点,插入边,取得某一结点的第一个邻接结点和下一个邻接结点. import java.u

  • Java编程实现高斯模糊和图像的空间卷积详解

    高斯模糊 高斯模糊(英语:Gaussian Blur),也叫高斯平滑,是在Adobe Photoshop.GIMP以及Paint.NET等图像处理软件中广泛使用的处理效果,通常用它来减少图像杂讯以及降低细节层次.这种模糊技术生成的图像,其视觉效果就像是经过一个半透明屏幕在观察图像,这与镜头焦外成像效果散景以及普通照明阴影中的效果都明显不同.高斯平滑也用于计算机视觉算法中的预先处理阶段,以增强图像在不同比例大小下的图像效果. 从数学的角度来看,图像的高斯模糊过程就是图像与正态分布做卷积.由于正态分

  • Java实现的微信图片处理工具类【裁剪,合并,等比例缩放等】

    本文实例讲述了Java实现的微信图片处理工具类.分享给大家供大家参考,具体如下: 现在 外面核心,图片文章比较少,看了拷贝代码,而用不了,用相应jar包处理,很多等比例缩放,达不到 想要的给予的期望:本工具类,是之前做微信打印机写的 基于java自带的类,基于rgb. package com.zjpz.util; import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt

  • Android图片处理工具类BitmapUtils

    Android图片的处理工具类BitmapUtils,供大家参考,具体内容如下 项目中经常会用到图片,所以在这先简单的总结一下.闲言少叙,上代码. package com.lvstudio.myapp.utils; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import

  • Java实现的3des加密解密工具类示例

    本文实例讲述了Java实现的3des加密解密工具类.分享给大家供大家参考,具体如下: package com.gcloud.common; import org.apache.poi.poifs.property.Child; import org.bouncycastle.jce.provider.BouncyCastleProvider; import javax.crypto.*; import javax.crypto.spec.IvParameterSpec; import javax

  • Java实现的DES加密解密工具类实例

    本文实例讲述了Java实现的DES加密解密工具类.分享给大家供大家参考,具体如下: 一个工具类,很常用,不做深入研究了,那来可直接用 DesUtil.java package lsy; import java.security.Key; import java.security.SecureRandom; import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.crypto.SecretKey; imp

  • Java实现的读取资源文件工具类ResourcesUtil实例【可动态更改值的内容】

    本文实例讲述了Java实现的读取资源文件工具类ResourcesUtil.分享给大家供大家参考,具体如下: package com.gcloud.common; import java.io.Serializable; import java.text.MessageFormat; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Locale; impor

  • Java实现操作JSON的便捷工具类完整实例【重写Google的Gson】

    本文实例讲述了Java实现操作JSON的便捷工具类.分享给大家供大家参考,具体如下: 对于JSON数据格式的处理,自开发Java以来,已用过多种JSON的开源工具,用得最好,也用得最High的恐怕要属Google的Gson了. 特别为它写了一个工具类,放入常备工具中,方便使用.下面是为GSON 1.5版本重写的工具类. 依赖包: slf4j-api-1.6.0.jar slf4j-log4j12-1.6.0.jar log4j-1.2.15.jar gson-1.5.jar /** * Copy

  • Android开发之图片切割工具类定义与用法示例

    本文实例讲述了Android开发之图片切割工具类定义与用法.分享给大家供大家参考,具体如下: 该工具类比较常见于拼图游戏中使用.这里演示了类基本的定义与使用方法. 图片切割工具类定义: public class ImageSplitter { /** * 将图片切成 , piece *piece * * @param bitmap * @param piece * @return */ public static List<ImagePiece> split(Bitmap bitmap, in

  • PHP实现可添加水印与生成缩略图的图片处理工具类

    本文实例讲述了PHP实现可添加水印与生成缩略图的图片处理工具类.分享给大家供大家参考,具体如下: ImageTool.class.php <?php class ImageTool { private $imagePath;//图片路径 private $outputDir;//输出文件夹 private $memoryImg;//内存图像 public function __construct($imagePath, $outputDir = null) { $this->imagePath

  • Java实现的执行python脚本工具类示例【使用jython.jar】

    本文实例讲述了Java实现的执行python脚本工具类.分享给大家供大家参考,具体如下: 这里java中执行python脚本工具类,需要使用jython.jar java中执行python脚本工具类,学习的时候写着玩: import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.List; i

  • java实现字符串四则运算公式解析工具类的方法

    项目中用到用户定义运算公式进行就算的需求,这样需要进行字符串四则运算解析,下面提供字符串公式四则运算解析与计算工具类,需要的同学可参考. 工具类如下:FormulaCalculator.java: package org.nercita.bcp.record.util; import java.util.ArrayList; import java.util.LinkedList; /** * @author zhangwenchao * @since 2016-08-26 * 公式计算的工具类

随机推荐