扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
正好写了一个,给你看看哈
网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、微信小程序、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了蒲县免费建站欢迎大家使用!
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.util.Date;
import javax.imageio.ImageIO;
public class ScreenCapturer {
public static void main(String[] args) throws Exception{
Date date = new Date();
Robot rbt = new Robot();
BufferedImage bf = rbt.createScreenCapture(new Rectangle(1440,900)); //这是屏幕分辨率 可以根据自己的屏幕修改
File file = new File("d://"+ date.toString().replace(" ","").replace(":","")+".jpg"); //这是保存路径D盘根目录
ImageIO.write(bf,"jpg",file);
System.out.println("截图成功!保存于D盘根目录下!时间:" + date.toString());
}
}
使用PowerDesigner软件逆向生成java类图的方法、步骤:1、打开PowerDesiger软件,点击文件-建立新模型,新建Obect-OrientedModel2、点击语言-ReverseEngineerJava,弹出反向生成类图设置窗口;3、在反向生成类图设置窗口中,选择ReverseEngineer,可以选择JavaFiles或JavaDirectories等,在这里我选择JavaDirectories;4、然后点击Add按钮添加目录,在这里我选择一个java源文件目录;5、点击确定,PowerDesigner会显示生成进度窗口,完成以后在PowerDesigner工作空间下会显示类图目录结构;6、到此便将选中的Java目录下的Java类文件生成了静态类结构,
package honest.imageio;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
/**
* 图片操作类
*
* @author
*
*/
public class ImageUtil {
private BufferedImage image;
private int width; // 图片宽度
private int height; // 图片高度
public ImageUtil(int width, int height) {
this.width = width;
this.height = height;
image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
}
/**
* 创建一个含有指定颜色字符串的图片
*
* @param message
* 字符串
* @param fontSize
* 字体大小
* @param color
* 字体颜色
* @return 图片
*/
public BufferedImage drawString(String message, int fontSize, Color color) {
Graphics g = image.getGraphics();
g.setColor(color);
Font f = new Font("宋体", Font.BOLD, fontSize);
g.setFont(f);
int len = message.length();
g.drawString(message, (width - fontSize * len) / 2,
(height + (int) (fontSize / 1.5)) / 2);
g.dispose();
return image;
}
/**
* 缩放图片
*
* @param scaleW
* 水平缩放比例
* @param scaleY
* 垂直缩放比例
* @return
*/
public BufferedImage scale(double scaleW, double scaleH) {
width = (int) (width * scaleW);
height = (int) (height * scaleH);
BufferedImage newImage = new BufferedImage(width, height,
image.getType());
Graphics g = newImage.getGraphics();
g.drawImage(image, 0, 0, width, height, null);
g.dispose();
image = newImage;
return image;
}
/**
* 旋转90度旋转
*
* @return 对应图片
*/
public BufferedImage rotate() {
BufferedImage dest = new BufferedImage(height, width,
BufferedImage.TYPE_INT_ARGB);
for (int i = 0; i width; i++)
for (int j = 0; j height; j++) {
dest.setRGB(height - j - 1, i, image.getRGB(i, j));
}
image = dest;
return image;
}
/**
* 合并两个图像
*
* @param anotherImage
* 另一张图片
* @return 合并后的图片,如果两张图片尺寸不一致,则返回null
*/
public BufferedImage mergeImage(BufferedImage anotherImage) {
int w = anotherImage.getWidth();
int h = anotherImage.getHeight();
if (w != width || h != height) {
return null;
}
for (int i = 0; i w; i++) {
for (int j = 0; j h; j++) {
int rgb1 = image.getRGB(i, j);
int rgb2 = anotherImage.getRGB(i, j);
Color color1 = new Color(rgb1);
Color color2 = new Color(rgb2);
// 如果该位置两张图片均没有字体经过,则跳过
// 如果跳过,则最后将会是黑色背景
if (color1.getRed() + color1.getGreen() + color1.getBlue()
+ color2.getRed() + color2.getGreen()
+ color2.getBlue() == 0) {
continue;
}
Color color = new Color(
(color1.getRed() + color2.getRed()) / 2,
(color1.getGreen() + color2.getGreen()) / 2,
(color1.getBlue() + color2.getBlue()) / 2);
image.setRGB(i, j, color.getRGB());
}
}
return image;
}
/**
* 保存图片int rgb1 = image.getRGB(i, j); int rgb2 = anotherImage.getRGB(i, j);
* rgb2 = rgb1 rgb2; image.setRGB(height - i, j, rgb2);
*
* @param filePath
* 图片路径
*/
public void save(String filePath) {
try {
ImageIO.write(image, "png", new File(filePath));
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 得到对应的图片
*
* @return
*/
public BufferedImage getImage() {
return image;
}
}
1.调用"images"文件夹里的文件放在ImageIcon里显示2.在windows下面显示正常Java在图形处理时调用了本地的图形处理库。在利用Java作图形处理(比如:图片缩放,图片签名,生成报表)时,如果运行在windows上不会出问题。如果将程序移植到Linux/Unix上的时候有可能出现图形不能显示的错误。3.提示信息:"Can'tconnecttoX11windowserver"这是由于Linux的图形处理需要一个XServer服务器。(关于Linux的图形处理模式参考Tomcat的修改如下:打开%Tomcat_home%/bin/catalina.sh文件在文件的86%处,启动Tomcat的脚本中加上:-Djava.awt.headless=true/参考:"$_RUNJAVA"$JAVA_OPTS$CATALINA_OPTS/-Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS"-classpath"$CLASSPATH"/-Dcatalina.base="$CATALINA_BASE"/-Dcatalina.home="$CATALINA_HOME"/-Djava.io.tmpdir="$CATALINA_TMPDIR"/-Djava.awt.headless=true/org.apache.catalina.startup.Bootstrap"$@"start/"$CATALINA_BASE"/logs/catalina.out21if[!-z"$CATALINA_PID"];thenecho$!$CATALINA_PIDfifielif["$1"="stop"];then保存后,重新启动就可以处理图形了。
这是简单的初步实现,你可以借鉴一下哈
package v01;
import javax.swing.*;
import java.awt.*;
public class ColorP extends JFrame {
public ColorP(){
this.add(new NewPanel());
}
public static void main(String[] args) {
ColorP frame = new ColorP();
frame.setTitle("Content");
frame.setSize(300, 150);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
class NewPanel extends JPanel{//扩展JPanel
public NewPanel(){
}
protected void paintComponent(Graphics g){//运用画笔Graphics绘制
super.paintComponent(g);//添加画笔
int[] x = new int[4];
int[] y = new int[4];
for(int i = 0; i 10; i++){
x[0] = i * 40 ;y[0] = 0;
x[1] = x[0] + 40;y[1] = 0;
x[2] = 0;y[2] = (i+1) * 40;
x[3] = 0;y[3] = y[2] - 40 ;
if(i % 2 == 0)
g.setColor(Color.black);
else
g.setColor(Color.yellow);
g.fillPolygon(x, y, x.length);
}
}
}
}
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流