1. java:为什么传输图片是常用base64字符串转码,而不是直接传输byte[]呢求解
先说说base64吧:对于图片来说,一个字节占八位,如果都换成byte[]的话,会很长,不便于传输,那么就把没6个字节来对应一个新的字符(如010011是19,对应base64编码的T),,所以这个目的主要是精简数据,便于传输;
另外常用的用途是:做不严格的加密用,比如常见的磁力链接,你懂的;因为它相对于严格加密省时省力,速度快,况且可恢复(如果用MD5就不行)
2. java中如何将字节数组转化成图片
在Java中,将字节数组转换成图片,可以通过File和IO操作来实现。下面是一个具体的例子:
假设我们有一个名为byte2image的方法,该方法接收一个字节数组和一个路径作为参数。该方法的功能是将字节数组转换成图片并保存到指定路径。
首先,我们需要检查输入的字节数组是否为空。如果字节数组的长度小于3或路径为空,则直接返回。接下来,我们使用FileImageOutputStream类打开一个输入流,该类用于将字节数组写入文件。
然后,我们通过调用write方法将字节数组写入硬盘。这个方法接收三个参数:要写入的字节数组、开始写入的起始位置以及要写入的字节数。
最后,我们关闭输入流,并输出一条成功信息,指示图片已经成功保存到指定路径。
在实际操作中,如果出现异常,我们需要捕获并处理这些异常。这可以通过try-catch块来实现。如果在转换过程中出现异常,我们会输出一条异常信息,并打印堆栈跟踪,以便于定位问题。
需要注意的是,这种方法适用于将字节数组转换为图片并保存到文件系统中的场景。在实际应用中,可以根据具体需求调整代码,以适应不同的使用场景。
通过这种方式,我们可以在Java中轻松地将字节数组转换为图片,并将其保存到文件系统中。这对于处理图像数据或从网络接收图像数据时非常有用。
3. 将base64位转换成png图片的java代码
//base64字符串转化成图片
public static boolean GenerateImage(String imgStr)
{ //对字节数组字符串进行Base64解码并生成图片
if (imgStr == null) //图像数据为空
return false;
BASE64Decoder decoder = new BASE64Decoder();
try
{
//Base64解码
byte[] b = decoder.decodeBuffer(imgStr);
for(int i=0;i<b.length;++i)
{
if(b[i]<0)
{//调整异常数据
b[i]+=256;
}
}
//生成jpeg图片
String imgFilePath = "d://222.jpg";//新生成的图片
OutputStream out = new FileOutputStream(imgFilePath);
out.write(b);
out.flush();
out.close();
return true;
}
catch (Exception e)
{
return false;
}
}
希望可以帮到你。
4. 用java写个程序 将 图像文件(png,jpg,等等) 转换成byte数组的 程序 谢谢 了
/* 读写图像文件 */
import javax.swing.JOptionPane;
import java.io.*;
class FileRW
{
int bytes;
byte buffer[ ] = new byte[65560];
FileInputStream fileInput;
FileOutputStream fileOutput;
FileRW()
{
takeimg();
loadimg();
JOptionPane.showMessageDialog(null,"文件复制并更名成功!\n文件大小为:"+bytes);
System.exit(0); //退出程序
}
//读取图像文件a.jpg
public void takeimg()
{
try {
File file=new File("a.jpg");
fileInput = new FileInputStream(file);
bytes = fileInput.read(buffer,0,65560);
} catch(IOException ei) { System.out.println(ei); }
}
//写入到b.jpg
public void loadimg()
{
try {
fileOutput = new FileOutputStream("b.jpg");
fileOutput.write(buffer, 0, bytes) ;
} catch(IOException eo) { System.out.println(eo); }
}
}
public class 读写图像文件
{
public static void main(String[] args)
{ new FileRW(); }
}
5. 如何用JAVA转换图像格式
关于图像转换的方式,实际上操作的是图像的字节流。我的工作中遇到过将bmp文件压缩为jpg以便于网络传输的课题。所以我这里重点介绍bmp转为jpg的一个方法。
实际上,我更喜欢使用以前sun公司内部使用的api提供的转换方法,这里使用到了两个很重要的类:
com.sun.image.codec.jpeg.JPEGCodec
com.sun.image.codec.jpeg.JPEGImageEncoder
需要注意的是,它们所属的一个jar包不存在于编译目录下,但存在于运行目录下,所以我们首先需要在jre文件下找到rt.jar并导入进来以使得编译通过。
我改写了网上的一个转换代码,所得代码如下:
备注:亲自尝试,当从jpg转bmp时会转很久很久时间(看不到尽头),转得的文件可以很大,所以建议不要使用。
6. java怎样把一个byte数组保存成图片到硬盘上
转成的图片 要么是个文件File 要么是个文件流. 那都只需要通过输入输出流往磁盘上写就行了