1. java中如何用base64解码图片,并返回图片,不保存。
给你发个我以前的工具类吧、
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.imageio.ImageIO;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
public class ImageChange {
/**
* 从path这个地址获取一张图片然后转为base64码
* @param imgName 图片的名字 如:123.gif(是带后缀的)
* @param path 123.gif图片存放的路径
* @return
* @throws Exception
*/
public static String getImageFromServer(String imgName,String path)throws Exception{
BASE64Encoder encoder = new sun.misc.BASE64Encoder();
File f = new File(path+imgName);
if(!f.exists()){
f.createNewFile();
}
BufferedImage bi = ImageIO.read(f);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(bi, "gif", baos);
byte[] bytes = baos.toByteArray();
return encoder.encodeBuffer(bytes).trim();
}
/**
* 将一个base64转换成图片保存在 path 文件夹下 名为imgName.gif
* @param base64String
* @param path 是一个文件夹路径
* @param imgName 图片名字(没有后缀)
* @throws Exception
*/
public static String savePictoServer(String base64String,String path,String imgName)throws Exception{
BASE64Decoder decoder = new sun.misc.BASE64Decoder();
byte[] bytes1 = decoder.decodeBuffer(base64String);
ByteArrayInputStream s = new ByteArrayInputStream(bytes1);
BufferedImage bi1 =ImageIO.read(s);
Date timeCur = new Date();
SimpleDateFormat fmtYY = new SimpleDateFormat("yyyy");
SimpleDateFormat fmtMM = new SimpleDateFormat("MM");
SimpleDateFormat fmtDD = new SimpleDateFormat("dd");
String strYY = fmtYY.format(timeCur);
String strMM = fmtMM.format(timeCur);
String strDD = fmtDD.format(timeCur);
String realPath = path+"/"+strYY+"/"+strMM+"/"+strDD;
File dir=new File(realPath);
if(!dir.exists()){
dir.mkdirs();
}
String fileName=path+"\\"+strYY+"\\"+strMM+"\\"+strDD +"\\"+imgName+".gif";
File w2 = new File(fileName);//可以是jpg,png,gif格式
ImageIO.write(bi1, "jpg", w2);//不管输出什么格式图片,此处不需改动
return fileName;
}
public static void main(String[] args) throws Exception {
System.out.println(getImageFromServer("001001.gif","d:"));
}
}
2. javapdf格式的base编码转换jpg格式的base64
在格式迟腊。
1、首先,将Java PDF格式的Base64编码启滑码字符串转换为byte数组。
2、然后,旁闭使用Java的ImageIO类将byte数组转换为BufferedImage对象。
3、接下来,将BufferedImage对象转换为JPG格式的Base64编码字符串。
3. Java 在for循环内用base64解析多张图片问题,求高手指点
前提这些图片必须先经过base64进行编码。测试时,循环遍历每一张图片经过base64编码后的码值。只要码值不同,解析方法正确,图片不会出现相同
4. java中怎么把图片啊。音频之类的转为二维码。和解码。求实例和注释。或资料。谢谢
按照我的想法,二维码本身是不具备存储图片的能力的,当然,特殊的情况也有,但是最直接和最方便(最没技术含量)的方式,是把图片存储在服务器上,每次扫描就去服务器,根据二维码扫描出来的信息加载图片
5. Java 图片base64编码是对图片存放路径进行编码还是对图片本身字节进行编码
对图片本身字碧祥节进行编码。你可以完成编码后,把图片悔晌搏删除。拿着对应的编码,解码后还谨旁是能得到对应图片的,所以可以证明以上结论。
6. java的base64在安卓解码不了,怎么回事
估计是代码的问题,示例如下:
Android端:编码:
String oneBaseEncoder = Base64.encode(msg.getBytes());
解码:
String oneBaseDecoder = new String(Base64.decode(msg));
JAVA WEB端:编码:
String oneBaseEncoder = new BASE64Encoder().encode(jsonString.getBytes("utf-8"));
解码:
String oneBaseDecoder = new String(new BASE64Decoder().decodeBuffer(jsonString));
7. java中编码与解码分别指什么
java中编码:URLEncoder.encode(strUri,"utf-8");
java中解码码:URLDecoder.decode(strUri,"utf-8");