我已经编写了一个程序来加密Netbeans中的图像。从Netbeans运行时,该程序运行良好,但是当我将其构建为.jar文件时
,即使我将图像文件与.jar文件放在同一文件夹中,它也无法读取图像。
package test;
import java.io.IOException;
import java.io.File;
/**
*
* @author AMaR
*/
public class Test {
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws IOException, Exception {
File EnImage = new File("encrypted.png");
File DeImage = new File("decrypted.png");
int[] pixels;
LoadImage l = new LoadImage();
l.load();
pixels= l.getImagePixels();
RC4New rc4 = new RC4New();
int key[]= {13,2,4,6,};
// int data[]={5,10,90,5};
rc4.KSA(key);
int[] text = rc4.PRNG(pixels);
l.write((int)512,(int)512,text,EnImage);
//RC4New rc41 = new RC4New();
rc4.KSA(key);
int[] text1 = rc4.PRNG(text);
l.write((int)512,(int)512,text1,DeImage);
/* for(int i=0;i<text.length;i++){
System.out.println(text[i]);
}
RC4New rc41 = new RC4New();
rc4.KSA(key);
int[] text1 = rc4.PRNG(text);
for(int i=0;i<text1.length;i++){
System.out.println(text1[i]);
}
*/
System.out.println("length:"+pixels.length);
// l.write((int)512,(int)512,text);
// TODO code application logic here
}
}
//encryption
package test;
/**
*
* @author AMaR
*/
public class RC4New {
int state[] = new int[256];
int j;
/**
*
* @param key
*/
public void KSA(int[] key){
int tmp;
for (int i=0; i < 256; i++) {
state[i] = i;
}
j=0;
for (int i=0; i < 256; i++) {
j = (j + state[i] + key[i % key.length]) % 256;
tmp = state[i];
state[i] = state[j];
state[j] = tmp;
}
}
public int[] PRNG(int[] data){
int tmp,k;
int i=0;
j=0;
int[] cipherText = new int[data.length];
for(int x=0;x<data.length;x++){
i = (i + 1) % 256;
j = (j + state[i]) % 256;
tmp = state[i];
state[i] = state[j];
state[j] = tmp;
k = state[(state[i] + state[j]) % 256];
cipherText[x]= (data[x] ^ k);
}
return cipherText;
}
}
//loading/writing image
package test;
import java.awt.Dimension;
import java.awt.image.BufferedImage;
import java.awt.image.Raster;
import java.io.IOException;
import javax.imageio.ImageIO;
import java.io.File;
import java.awt.image.WritableRaster;
/**
*
* @author AMaR
*/
public class LoadImage {
BufferedImage image;
void load()throws Exception {
// FIle newfile = new File("lena.png)
image = ImageIO.read(getClass().getResourceAsStream("lena.png"));
}
public Dimension getImageSize() {
return new Dimension(image.getWidth(), image.getHeight());
}
public int[] getImagePixels() {
int [] dummy = null;
int wid, hgt;
// compute size of the array
wid = image.getWidth();
hgt = image.getHeight();
// start getting the pixels
Raster pixelData;
pixelData = image.getData();
return pixelData.getPixels(0, 0, wid, hgt, dummy);
}
@SuppressWarnings("empty-statement")
public void write(int width ,int height, int[] pixels,File outputfile) {
try {
// retrieve image
BufferedImage writeImage = new BufferedImage(512, 512, BufferedImage.TYPE_BYTE_GRAY);;
// File outputfile = new File("encrypted.png");
WritableRaster raster = (WritableRaster) writeImage.getData();
raster.setPixels(0,0,width,height,pixels);
writeImage.setData(raster);
ImageIO.write(writeImage, "png", outputfile);
} catch (IOException e) {
}
}
}
目前尚不清楚以下哪个触发您的错误。这个
File EnImage = new File("encrypted.png");
将从当前目录读取,该目录不一定与您的jar文件所在的目录相同。
这个
image = ImageIO.read(getClass().getResourceAsStream("lena.png"));
将从类所在的jar文件中的目录中读取。请注意,您是从jar文件而不是目录中读取。
鉴于以上代码,我将:
问题内容: 我已经编写了一个程序来加密Netbeans中的图像。从Netbeans运行时,该程序运行良好,但是当我将其构建为.jar文件时,即使我将图像文件与.jar文件放在同一文件夹中,它也无法读取图像。 //加密 //加载/写入图片 问题答案: 目前尚不清楚以下哪个触发您的错误。这个 将从当前目录读取,该目录不一定与您的jar文件所在的目录相同。 这个 将从类所在的jar文件中的目录中读取。请
问题内容: 第一。我知道关于如何访问jar文件中的图像已经存在各种主题。第二。我尝试了很多选择,但没有一个没有用。我当然知道在某个地方我犯了一个错误。您能帮助我了解我在做什么错吗? 因此,我有一个名为“ j”的原型项目,它仅包含一个Java类- 客户端。客户端尝试访问图像good.png。将所有文件打包到可执行jar文件后,客户端将无法访问文件。我在月食中工作,并使用蚂蚁。 com.pupcom.
当我构建一个jar文件并运行它时,由于找不到图像图标,它显示一个空指针异常 这是我运行jar文件时得到的错误 但是当我在NetBeans中运行这个项目时,它运行良好 这是我列出罐子里所有文件时的输出
我在为D写一个角色构建器 我正在使用InputStream将javafx Image构造加载到ImageView构造函数[new ImageView(new Image(getClass(). getResourceAsStream(...)))]中;当我加载一些. jpeg图像时,它可以工作,但当我对. png图像执行相同的过程时就不行了 我已经尝试了这里描述的许多关于StackOverflow
问题内容: 我正在尝试从无头CMS(Sanity.io)返回一些数据,但是我的React一直遇到错误。我已遵循此示例,但是现在出现错误 我的密码 关于我在做什么错的任何想法吗? 问题答案: 渲染组件时,可以将country定义为未定义或为null。确保它在初始渲染时是数组: 或者, 您可以将地图用于这样的国家/地区: 这样可以确保仅在有国家/地区时才运行地图。
我目前正在为我正在制作的一款游戏进行单元测试,但在maven身上遇到了一个奇怪的错误,我无法理解。 我已经运行了,现在我的测试失败了。 以下是我在运行mvn测试-X时遇到的错误: 这是我的Maven文件: 这是JUnit测试的代码: 下面是我得到错误的代码: 我很确定它与maven文件有关,但我不确定它是什么。也许是我正在使用的图像阅读库?任何帮助都将不胜感激。