zoukankan      html  css  js  c++  java
  • 图片旋转翻转

    	/**
    	 * 水平翻转图像
    	 * @param img
    	 * @return
    	 */
    	public Image flipImage_H(Image img)
    	{
    		int width = img.getWidth(null);
    		int height = img.getHeight(null);
    		BufferedImage newImg = new BufferedImage(width, height, 1);
    		Graphics g = newImg.getGraphics();
    		g.drawImage(img, 0, 0, width, height, width, 0, 0, height, null);
    		g.dispose();
    		return newImg;
    	}
    	
    	/**
    	 * 竖直翻转图像
    	 * @param img
    	 * @return
    	 */
    	public Image flipImage_V(Image img)
    	{
    		int width = img.getWidth(null);
    		int height = img.getHeight(null);
    		BufferedImage newImg = new BufferedImage(width, height, 1);
    		Graphics g = newImg.getGraphics();
    		Graphics2D g2d = (Graphics2D) g;
    //		g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.DST_IN, 0.1f));
    		g2d.drawImage(img, 0, 0, width, height, 0, height, width, 0, null);
    		g2d.dispose();
    		return newImg;
    	}
    	
    	
    	/**
    	 * 顺时针转90度
    	 * @param img
    	 * @return
    	 */
    	public Image getImage_rote90(Image img)
    	{
    		int width = img.getWidth(null);
    		int height = img.getHeight(null);
    		BufferedImage newImg = new BufferedImage(height, width, 1);
    		Graphics g = newImg.getGraphics();
    		Graphics2D g2d = (Graphics2D) g;
    		g2d.rotate(Math.toRadians(90), height, 0);
    		g2d.drawImage(img, height, 0, width, height,  null);
    		g2d.dispose();
    		return newImg;
    	}
    	
    	
    	/**
    	 * 顺时针转180
    	 * @param img
    	 * @return
    	 */
    	public Image getImage_rote180(Image img)
    	{
    		int width = img.getWidth(null);
    		int height = img.getHeight(null);
    		BufferedImage newImg = new BufferedImage(width, height, 1);
    		Graphics g = newImg.getGraphics();
    		g.drawImage(img, 0, 0, width, height, width, height, 0, 0, null);
    		g.dispose();
    		return newImg;
    	}
    	
    	/**
    	 * 顺时针转270
    	 * @param img
    	 * @return
    	 */
    	public Image getImage_rote270(Image img)
    	{
    		int width = img.getWidth(null);
    		int height = img.getHeight(null);
    		BufferedImage newImg = new BufferedImage(height, width, 1);
    		Graphics g = newImg.getGraphics();
    		Graphics2D g2d = (Graphics2D) g;
    		g2d.rotate(Math.toRadians(-90), 0, 0);
    		g2d.drawImage(img, -width, 0, width, height,  null);
    		g2d.dispose();
    		return newImg;
    	}
    	
    	
    	
    	
    	/**
    	 * 关于y=x翻转
    	 * @param srcImg
    	 * @return
    	 */
    	public Image getImage_FLIP_YISX(Image srcImg)
    	{
    		int width = srcImg.getWidth(null);
    		int height = srcImg.getHeight(null);
    		BufferedImage result = new BufferedImage(height, width, 1);
    		Graphics g = result.getGraphics();
    		Graphics2D g2d = (Graphics2D) g;
    		AffineTransform affineTransform = new AffineTransform(0, -1, -1, 0, height, width);
    		AffineTransformOp affineTransformOp = new AffineTransformOp(affineTransform, AffineTransformOp.TYPE_NEAREST_NEIGHBOR);
    		affineTransformOp.filter(getClone(srcImg), result);
    		g2d.dispose();
    		return result;
    	}
    	
    	
    	/**
    	 * 关于y=-x翻转
    	 * @param srcImg
    	 * @return
    	 */
    	public Image getImage_FLIP_YISFUX(Image srcImg)
    	{
    		int width = srcImg.getWidth(null);
    		int height = srcImg.getHeight(null);
    		BufferedImage result = new BufferedImage(height, width, 1);
    		Graphics g = result.getGraphics();
    		Graphics2D g2d = (Graphics2D) g;
    		AffineTransform affineTransform = new AffineTransform(0, 1, 1, 0, 0, 0);
    		AffineTransformOp affineTransformOp = new AffineTransformOp(affineTransform, AffineTransformOp.TYPE_NEAREST_NEIGHBOR);
    		affineTransformOp.filter(getClone(srcImg), result);
    		g2d.dispose();
    		return result;
    	}
    	
    	
    	
    	/**
    	 * 得到克隆图像
    	 * @param srcImg
    	 * @return
    	 */
    	public BufferedImage getClone(Image srcImg)
    	{
    		int width = srcImg.getWidth(null);
    		int height = srcImg.getHeight(null);
    		BufferedImage result = new BufferedImage(width, height, 1);
    		Graphics g = result.getGraphics();
    		g.drawImage(srcImg, 0, 0, width, height, 0, 0, width, height,null);
    		g.dispose();
    		return result;
    	}
    
  • 相关阅读:
    HDU 1501 Zipper(DFS)
    HDU 2181 哈密顿绕行世界问题(DFS)
    HDU 1254 推箱子(BFS)
    HDU 1045 Fire Net (DFS)
    HDU 2212 DFS
    HDU 1241Oil Deposits (DFS)
    HDU 1312 Red and Black (DFS)
    HDU 1010 Tempter of the Bone(DFS+奇偶剪枝)
    HDU 1022 Train Problem I(栈)
    HDU 1008 u Calculate e
  • 原文地址:https://www.cnblogs.com/chaohi/p/1999473.html
Copyright © 2011-2022 走看看