网站首页 > 文章中心 > 其它

java图形处理代码

作者:小编 更新时间:2023-09-08 13:07:07 浏览量:334人看过

如何用Java实现图形的放大和缩小?

要用Java实现图形的放大和缩小,可以使用以下代码:

import java.awt.*;import java.awt.event.*;import javax.swing.*;//实现矩形在规定时间间隔里循环放大缩小;

//画矩形,实心矩形为fillRect(....)?g.setColor (Color.RED);?//同上...?g.drawOval (x,y,w,h);? //画椭圆?setTitle (w+","+h);? //以矩形宽和高来设置窗口标题?}?public void setSize(){?float n = getWidth()/getWidth();?if(w==0||h==0)?flag = false;

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,所以呢Java语言具有功能强大和简单易用两个特征.Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 .

Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点.Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等.

解析下这个生成图片的Java代码

求一个简单的java代码:(图形界面)

java图形处理代码-图1

import java.awt.Color;

import java.awt.Dimension;

import java.awt.Toolkit;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

java图形处理代码-图2

import javax.swing.JDialog;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JPasswordField;

import javax.swing.JTextField;

public class vv extends JDialog {

private static final long serialVersionUID = 1L;

private JLabel l_Id = new JLabel("登陆账户", JLabel.CENTER);

private JLabel l_pw = new JLabel("登陆密码", JLabel.CENTER);

private JTextField t_Id = new JTextField(10);

private JPasswordField t_pw = new JPasswordField(10);

private JButton btnLogin;

private JButton btnClose;

public vv() {

super();

setResizable(false);

getContentPane().setLayout(null);

initialize();

}

protected void initialize() {

setTitle("系统登录");

getContentPane().add(l_Id);

getContentPane().add(l_pw);

getContentPane().add(t_Id);

getContentPane().add(t_pw);

btnLogin = new JButton();

btnLogin.setText("登 录");

btnLogin.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

addBtnLoginActionListener();

});

getContentPane().add(btnLogin);

btnClose = new JButton();

btnClose.setText("关 闭");

btnClose.addActionListener(new ActionListener() {

dispose();

System.exit(-1);

getContentPane().add(btnClose);

private void addBtnLoginActionListener() {

String user = t_Id.getText();

String password = new String(t_pw.getPassword());

if (user.equals("")) {

JOptionPane.showMessageDialog(this, "帐号不可为空", "Caution",

JOptionPane.WARNING_MESSAGE);

return;

if (password.equals("")) {

JOptionPane.showMessageDialog(this, "密码不可为空", "Caution",

String sql = "select * FROM login WHERE id = '" + user + "' and pw = '"

+ password + "'";

boolean success = false;

// TODO:数据校验 success = executeQuery(sql);

if (success) {

// TODO: 如果数据校验成功 显示主界面 并关闭登录界面

JOptionPane.showMessageDialog(this, "成功登录", "提示",

JOptionPane.INFORMATION_MESSAGE);

this.dispose();

} else {

JOptionPane.showMessageDialog(this, "帐号或密码错误!", "警告",

t_pw.requestFocus(); // 密码框选中

public Dimension getPreferredSize() {

public void show() {

Toolkit tk = Toolkit.getDefaultToolkit();

Dimension screen = tk.getScreenSize();

Dimension d = getSize();

getRootPane().setDefaultButton(btnLogin);

t_pw.requestFocus();

setDefaultCloseOperation(DISPOSE_ON_CLOSE);

super.show();

public static void main(String[] args) {

vv loginFrame = new vv();

loginFrame.setVisible(true);

希望对你有帮助

java代码怎么实现计算图像二值连通区域的质心

一:几何距(Geometric Moments)知识与质心寻找原理

① Image Moments是图像处理中非常有用的算法,可以用来计算区域图像的质心,方向等几何特性,同时Mpq的高阶具有旋转不变性,可以用来实现图像比较分类,正是因为Moments有这些特性,很多手绘油画效果也会基于该算法来模拟实现.它的数学表达为:

就是通过该点,区域达到一种质量上的平衡状态,可能物理学上讲的比较多,简单点的说就是规则几何物体的中心,不规则的可以通过挂绳子的方法来寻找.

二:算法流程

① 输入图像转换为二值图像

三:算法效果

左边为原图, 右边蓝色为连通组件标记算法处理以后结果,白色点为质心

四:关键代码解析

① 计算几何距算法代码

doublem00 = moments(pixels, width, height, 0, 0);

doublexCr = moments(pixels, width, height, 1, 0) / m00;// row

doubleyCr = moments(pixels, width, height, 0, 1) / m00;// column

return new double[]{xCr, yCr};

新手学习使用Java,尝试着做一个项目使用Java做一个视频图像的处理.

Java图像处理技巧四则

下面代码中用到的sourceImage是一个已经存在的Image对象

图像剪切

对于一个已经存在的Image对象,要得到它的一个局部图像,可以使用下面的步骤:

//import java.awt.*;

//import java.awt.image.*;

Image croppedImage;

ImageFilter cropFilter;

CroppedImage= Toolkit.getDefaultToolkit().createImage(new FilteredImageSource(sourceImage.getSource(),cropFilter));

如果是在Component的子类中使用,可以将上面的Toolkit.getDefaultToolkit().去掉.FilteredImageSource是一个ImageProducer对象.

图像缩放

对于一个已经存在的Image对象,得到它的一个缩放的Image对象可以使用Image的getScaledInstance方法:

Image scaledImage=sourceImage. getScaledInstance(100,100, Image.SCALE_DEFAULT); //得到一个100X100的图像

//其它情况请参考API

灰度变换

/* GrayFilter.java*/

import java.awt.image.*;

public class GrayFilter extends RGBImageFilter {

int modelStyle;

public GrayFilter() {

modelStyle=GrayModel.CS_MAX;

canFilterIndexColorModel=true;

public GrayFilter(int style) {

modelStyle=style;

public void setColorModel(ColorModel cm) {

if (modelStyle==GrayModel

else if (modelStyle==GrayModel

public int filterRGB(int x,int y,int pixel) {

return pixel;

/* GrayModel.java*/

public class GrayModel extends ColorModel {

public static final int CS_MAX=0;

public static final int CS_FLOAT=1;

ColorModel sourceModel;

public GrayModel(ColorModel sourceModel) {

super(sourceModel.getPixelSize());

this.sourceModel=sourceModel;

modelStyle=0;

public GrayModel(ColorModel sourceModel,int style) {

public void setGrayStyle(int style) {

protected int getGrayLevel(int pixel) {

if (modelStyle==CS_MAX) {

return Math.max(sourceModel.getRed(pixel),Math.max(sourceModel.getGreen(pixel),sourceModel.getBlue(pixel)));

else if (modelStyle==CS_FLOAT){

else {

return 0;

public int getAlpha(int pixel) {

return sourceModel.getAlpha(pixel);

public int getRed(int pixel) {

return getGrayLevel(pixel);

public int getGreen(int pixel) {

public int getBlue(int pixel) {

public int getRGB(int pixel) {

int gray=getGrayLevel(pixel);

如果你有自己的算法或者想取得特殊的效果,你可以修改类GrayModel的方法getGrayLevel().

色彩变换

根据上面的原理,我们也可以实现色彩变换,这样的效果就很多了.下面是一个反转变换的例子:

/* ReverseColorModel.java*/

public class ReverseColorModel extends ColorModel {

public ReverseColorModel(ColorModel sourceModel) {

return ~sourceModel.getRed(pixel);

return ~sourceModel.getGreen(pixel);

java图形处理代码-图3

return ~sourceModel.getBlue(pixel);

public class ReverseFilter extends RGBImageFilter {

public ReverseFilter() {

substituteColorModel(cm,new ReverseColorModel(cm));

要想取得自己的效果,需要修改ReverseColorModel.java中的三个方法,getRed、getGreen、getBlue.

下面是上面的效果的一个总的演示程序.

/*GrayImage.java*/

import java.awt.*;

import javax.swing.*;

import java.awt.color.*;

public class GrayImage extends JFrame{

ImageIcon ii;

int iw,ih;

public GrayImage() {

ii=new ImageIcon(\"images/11.gif\");

source=ii.getImage();

iw=source.getWidth(this);

ih=source.getHeight(this);

filter=new GrayFilter();

gray=createImage(new FilteredImageSource(source.getSource(),filter));

clip=createImage(new FilteredImageSource(source.getSource(),cropFilter));

MediaTracker mt=new MediaTracker(this);

mt.addImage(gray,0);

try {

mt.waitForAll();

} catch (Exception e) {

java程序,用图形实现乘除运算

简易的计算器代码如下,请参照:

import?java.awt.BorderLayout;

import?java.awt.GridLayout;

import?java.awt.event.ActionEvent;

import?java.awt.event.ActionListener;

import?java.awt.event.KeyAdapter;

import?java.awt.event.KeyEvent;

import?javax.swing.JButton;

import?javax.swing.JFrame;

import?javax.swing.JPanel;

import?javax.swing.JTextField;

/**

*?计算器类

*?

*

*/

public?class?Calculator?extends?JFrame?implements?ActionListener?{

//?文本框

private?JTextField?result;

//?按钮数组

private?JButton[]?buttons;

//?按钮文本

//?是否为第一个输入的数字

private?boolean?isFirstDigit?=?true;

//?运算结果

private?double?resultNum?=?0.0;

//?运算符

private?String?operator?=?"=";

public?Calculator(String?title)?{

//?设置标题栏

super(title);

//?初始化各组件

init();

//?注册各组件监听器

registerListener();

//?显示窗体

setVisible(true);

*?初始化各组件

private?void?init()?{

//?常用属性初始化

setLocationRelativeTo(null);

setDefaultCloseOperation(EXIT_ON_CLOSE);

/*?文本框对象初始化?*/

result?=?new?JTextField("0");

//?文本右对齐

result.setHorizontalAlignment(JTextField.RIGHT);

result.setEditable(false);

/*?按钮初始化?*/

buttons?=?new?JButton[characters.length];

for?(int?i?=?0;?i?buttons.length;?i++)?{

buttons[i]?=?new?JButton(characters[i]);

buttons[i].setFocusable(false);?//?不允许按钮定位焦点

/*?将文本框与按钮添加到窗体中?*/

add(result,?BorderLayout.NORTH);

for?(JButton?jButton?:?buttons)?{

pnl.add(jButton);

add(pnl);

this.getContentPane().setFocusable(true);

*?注册监听器

private?void?registerListener()?{

jButton.addActionListener(this);

//?注册键盘事件

this.getContentPane().addKeyListener(new?KeyAdapter()?{

public?void?keyPressed(KeyEvent?e)?{

String?text?=?String.valueOf(e.getKeyChar());

if?(Character.isDigit(text.charAt(0))?||?".".equals(text))?{?//?数字或小数点

handleNumber(text);

}?else?if?("+-*/=".indexOf(text)?!=?-1)?{?//?运算符

handleOperator(text);

String?tmp?=?result.getText().trim();

if?(tmp.length()?==?1)?{

result.setText("0");

isFirstDigit?=?true;

}?else?{

result.setText(tmp.substring(0,?tmp.length()?-?1));

public?void?actionPerformed(ActionEvent?e)?{

JButton?btn?=?(JButton)?e.getSource();

String?text?=?btn.getText().trim();

if?(Character.isDigit(text.charAt(0))?||?".".equals(text))?{?//?处理数字和小数点

}?else?{?//?处理运算符

*?处理数字和小数点

private?void?handleNumber(String?text)?{

if?(isFirstDigit)?{?//?第一次输入

if?(".".equals(text))?{

this.result.setText("0.");

this.result.setText(text);

}?else?if?("0".equals(text)?"0".equals(this.result.getText()))?{

}?else?if?(".".equals(text)?this.result.getText().indexOf(".")?==?-1)?{

this.result.setText(this.result.getText()?+?".");

}?else?if?(!".".equals(text))?{

this.result.setText(this.result.getText()?+?text);

isFirstDigit?=?false;

*?处理运算符

private?void?handleOperator(String?text)?{

case?"+":

resultNum?+=?Double.parseDouble(this.result.getText());

break;

case?"-":

resultNum?-=?Double.parseDouble(this.result.getText());

case?"*":

resultNum?*=?Double.parseDouble(this.result.getText());

case?"/":

resultNum?/=?Double.parseDouble(this.result.getText());

case?"=":

resultNum?=?Double.parseDouble(this.result.getText());

//?将文本框的值修改为运算结果

this.result.setText(String.valueOf(resultNum));

operator?=?text;

public?static?void?main(String[]?args)?{

new?Calculator("My?Calculator");

运行结果如下:

以上就是土嘎嘎小编为大家整理的java图形处理代码相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章