java改写
public void actionPerformed(ActionEvent evt)
{
Graphics graph = getGraphics();
if (evt.getSource() == openItem)
{
//文件选择对话框
JFileChooser chooser = new JFileChooser();
common.chooseFile(chooser, "D:/testphotos", 0);//设置默认目录,过滤文件
int r = chooser.showOpenDialog(null);
MediaTracker tracker = new MediaTracker(this);
if(r == JFileChooser.APPROVE_OPTION)
{
//路径与文件全名
String name = chooser.getSelectedFile().getAbsolutePath();
//取文件名及其长度
String fname = chooser.getSelectedFile().getName();
int len = fname.length();
//取出文件名imn和加密标识imh
imn = fname.substring(0, len-4);
imh = fname.substring(0, 2);
if(runflag)
{
loadflag = false;
runflag = false;
}
if(!loadflag)
{
//装载图像
iImage = common.openImage(name, tracker);
//取载入图像的宽和高
iw = iImage.getWidth(null);
ih = iImage.getHeight(null);
repaint();
loadflag = true;
}
}
}
else if (evt.getSource() == arnoldItem)
{
if(loadflag)
{
setTitle("毕业设计加密算法");
if(iw != ih)
{
JOptionPane.showMessageDialog(null, "仅适用于宽高相等图像!");
loadflag = false;
return;
}
pixels = common.grabber(iImage, iw, ih);
//设定密钥
int key = common.getParam("输入密钥(000000-999999)","123456");
pixels = cipher.arnold_mtr(pixels, iw, key, 1);
oImage = showPix(graph, pixels, "加密图像");
//存储JPEG图像
File file = new File("D:/testphotos/c_"+imn+".jpg");
bImage = (BufferedImage)this.createImage(iw, ih);
bImage.createGraphics().drawImage(oImage, 0, 0, this);
common.saveImageAsJPEG(bImage, file);
JOptionPane.showMessageDialog(null, "在目录D:/testphotos\n"
+"c_"+imn+".jpg加密图像成功!");
}
}
else if (evt.getSource() == iarnoldItem)
{
if(loadflag)
{
if(!imh.equals("c_")) //未受JPEG攻击
{
cphpix = pixels;
//设定密钥
int key = common.getParam("输入密钥(000000-99999)","123456");
pixels = cipher.arnold_mtr(cphpix, iw, key, -1);
showPix(graph, pixels, "解密图像");
}
else //受JPEG攻击
{
cphpix = common.grabber(iImage, iw, ih);
//设定密钥
int key = common.getParam("输入密钥(000000-999999)","123456");
pixels = cipher.arnold_mtr(cphpix, iw, key, -1);
showPix(graph, pixels, "解密攻击图");
}
}
else
JOptionPane.showMessageDialog(null, "请先打开图像!");
}
}
怎么将打开一张图片进行arnold变换 更改为从键盘输入一个矩阵然后调用cipher.arnold_mtr(pixels, iw, key, 1);这一部分实现矩阵的变换,然后输出一个矩阵
!!感谢!!
{
Graphics graph = getGraphics();
if (evt.getSource() == openItem)
{
//文件选择对话框
JFileChooser chooser = new JFileChooser();
common.chooseFile(chooser, "D:/testphotos", 0);//设置默认目录,过滤文件
int r = chooser.showOpenDialog(null);
MediaTracker tracker = new MediaTracker(this);
if(r == JFileChooser.APPROVE_OPTION)
{
//路径与文件全名
String name = chooser.getSelectedFile().getAbsolutePath();
//取文件名及其长度
String fname = chooser.getSelectedFile().getName();
int len = fname.length();
//取出文件名imn和加密标识imh
imn = fname.substring(0, len-4);
imh = fname.substring(0, 2);
if(runflag)
{
loadflag = false;
runflag = false;
}
if(!loadflag)
{
//装载图像
iImage = common.openImage(name, tracker);
//取载入图像的宽和高
iw = iImage.getWidth(null);
ih = iImage.getHeight(null);
repaint();
loadflag = true;
}
}
}
else if (evt.getSource() == arnoldItem)
{
if(loadflag)
{
setTitle("毕业设计加密算法");
if(iw != ih)
{
JOptionPane.showMessageDialog(null, "仅适用于宽高相等图像!");
loadflag = false;
return;
}
pixels = common.grabber(iImage, iw, ih);
//设定密钥
int key = common.getParam("输入密钥(000000-999999)","123456");
pixels = cipher.arnold_mtr(pixels, iw, key, 1);
oImage = showPix(graph, pixels, "加密图像");
//存储JPEG图像
File file = new File("D:/testphotos/c_"+imn+".jpg");
bImage = (BufferedImage)this.createImage(iw, ih);
bImage.createGraphics().drawImage(oImage, 0, 0, this);
common.saveImageAsJPEG(bImage, file);
JOptionPane.showMessageDialog(null, "在目录D:/testphotos\n"
+"c_"+imn+".jpg加密图像成功!");
}
}
else if (evt.getSource() == iarnoldItem)
{
if(loadflag)
{
if(!imh.equals("c_")) //未受JPEG攻击
{
cphpix = pixels;
//设定密钥
int key = common.getParam("输入密钥(000000-99999)","123456");
pixels = cipher.arnold_mtr(cphpix, iw, key, -1);
showPix(graph, pixels, "解密图像");
}
else //受JPEG攻击
{
cphpix = common.grabber(iImage, iw, ih);
//设定密钥
int key = common.getParam("输入密钥(000000-999999)","123456");
pixels = cipher.arnold_mtr(cphpix, iw, key, -1);
showPix(graph, pixels, "解密攻击图");
}
}
else
JOptionPane.showMessageDialog(null, "请先打开图像!");
}
}
怎么将打开一张图片进行arnold变换 更改为从键盘输入一个矩阵然后调用cipher.arnold_mtr(pixels, iw, key, 1);这一部分实现矩阵的变换,然后输出一个矩阵
!!感谢!!
...全文
相关推荐
pdf_排序_java语言改写c_
java实现的排序,根据C语言排序改写,供java初学者参考
JAVA/JSP学习系列之八(改写MySQL翻页例子)
一、前言 其实,改写后的JDBC Data-Source是运行在Servlet中的,通过JNDI去查找数据源。我用Orion试的,将本站《JAVA/JSP学习系列之六(MySQL翻页例子) 》 简单改写了一下。二、配置(1)JDBC 需要将用到的JDBC驱动Copy到[ORION]/lib目录下(2)data-source 在[ORION]/config/data-sources.xml文件中加入如下:〈data-source class=com.evermind.sql.DriverManagerDataSource name=mySqlDbpage location=
java-业务需求需要根据经纬度计算面积,整理了一下根据经纬度计算面积,根据openlayers借鉴改写,亲测可用
java-业务需求需要根据经纬度计算面积,整理了一下根据经纬度计算面积,根据openlayers借鉴改写,亲测可用!
java利用接口和抽象类改写求圆的面积和梯形的面积.docx
java利用接口和抽象类改写求圆的面积和梯形的面积.docx
java通过不断改写数据实现动画
java在面板上通过不断重写数据,移动和重复操作,将一系列的图片连续显示在面板,实现动画


Java SE
