自己找的一个旋转图片的方法已经写成JSP方式了,但是旋转任意角度后有些失真,求解决方法或替换方法,谢谢各位了,5555555555555<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page language="java" import="java.awt.BasicStroke"%>
<%@ page language="java" import="java.awt.Graphics2D" %>
<%@ page language="java" import="java.awt.RenderingHints" %>
<%@ page language="java" import="java.awt.geom.AffineTransform"%>
<%@ page language="java" import="java.awt.image.BufferedImage"%>
<%@ page language="java" import="java.io.File" %>
<%@ page language="java" import="java.io.IOException" %>
<%@ page language="java" import="javax.imageio.ImageIO"%><%
String fileName = request.getParameter("fileName");
int angle = Integer.parseInt(request.getParameter("angle"));
String path = getServletContext().getRealPath("").replace("\\","/");
AffineTransform trans = null;
trans = new AffineTransform();
String filePath = path+"/images/"+fileName;
//response.getWriter().write(filePath);
File f = new File(filePath);
BufferedImage buffimg = ImageIO.read(f);
int w = buffimg.getWidth();
int h = buffimg.getHeight();
Graphics2D g2 = buffimg.createGraphics();
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
trans.rotate(Math.toRadians(angle),w/2,h/2);
g2.setTransform(trans);
g2.setStroke(new BasicStroke(100.0f));//粗细
g2.drawImage(buffimg, null, null);
g2.dispose();
ImageIO.write(buffimg, "png", response.getOutputStream());
buffimg.flush();
%>
<%@ page language="java" import="java.awt.BasicStroke"%>
<%@ page language="java" import="java.awt.Graphics2D" %>
<%@ page language="java" import="java.awt.RenderingHints" %>
<%@ page language="java" import="java.awt.geom.AffineTransform"%>
<%@ page language="java" import="java.awt.image.BufferedImage"%>
<%@ page language="java" import="java.io.File" %>
<%@ page language="java" import="java.io.IOException" %>
<%@ page language="java" import="javax.imageio.ImageIO"%><%
String fileName = request.getParameter("fileName");
int angle = Integer.parseInt(request.getParameter("angle"));
String path = getServletContext().getRealPath("").replace("\\","/");
AffineTransform trans = null;
trans = new AffineTransform();
String filePath = path+"/images/"+fileName;
//response.getWriter().write(filePath);
File f = new File(filePath);
BufferedImage buffimg = ImageIO.read(f);
int w = buffimg.getWidth();
int h = buffimg.getHeight();
Graphics2D g2 = buffimg.createGraphics();
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
trans.rotate(Math.toRadians(angle),w/2,h/2);
g2.setTransform(trans);
g2.setStroke(new BasicStroke(100.0f));//粗细
g2.drawImage(buffimg, null, null);
g2.dispose();
ImageIO.write(buffimg, "png", response.getOutputStream());
buffimg.flush();
%>
解决方案 »
- jsp中如何实现“网页上播放flash视频”
- div跟随鼠标移动代码。不需要jquery,div自动调整
- 急急急tocmat配置的问题
- clas文件
- 谁能帮我看看这个异常 谢谢了
- jsp页面无法正常显示图片和视频,显示视频为黑屏,并且只有声音,没有图像
- why???不明白的我的why?replace('\\','/').lastIndexOf("/") + 1);
- 十万火急
- 通过jquery ajax调用webservice服务没有反应
- 关于javaBeans最简单的一个问题
- 跪求中!!jbpm不能持久到数据库中
- 使用struts2标签时报attribute value does not accept any expressions异常
@Override
public void paintComponent(Graphics g) {
setBackground(Color.DARK_GRAY);
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
RenderingHints.VALUE_INTERPOLATION_BILINEAR); // 这里使用双线性过滤插件算法 g2d.translate(0, 300);
g2d.rotate(Math.toRadians(-30));
g2d.drawImage(img, 0, 0, img.getWidth(this), img.getHeight(this), null);
}
RenderingHints.VALUE_INTERPOLATION_BILINEAR); // 这里使用双线性过滤插件算法这种过滤方法旋转基本可以,边缘稍微有些柔化,不过还能接受,哈哈,非常感谢!
g2d.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
RenderingHints.VALUE_INTERPOLATION_BICUBIC);
他是将buffimg的数据处理后又叠加到原图上去了,这就导致如果背景是透明的话,经过处理的图片就是2张图片的叠加了,请问这个问题该如何处理??
BufferedImage bufImg = new BufferedImage(299, 299, BufferedImage.TYPE_INT_RGB);
导致是2张图片叠加在一起!!!