方式一: InputStream inputStream = getClass().getClassLoader().getResourceAsStream(".json");
private void buildRegionCode() {
InputStream inputStream = getClass().getClassLoader().getResourceAsStream("static/RegionCode.json");
byte[] bytes;
try {
bytes = new byte[inputStream.available()];
inputStream.read(bytes);
} catch (IOException e) {
throw new RuntimeException(e);
}
String str = new String(bytes);
TypeToken<List<RegionCode>> token = new TypeToken<List<RegionCode>>() {
};
regionCodeList = GsonUtil.getGson().fromJson(str, token.getType());
}
Non-static method 'getClass()' cannot be referenced from a static context
方式二:Resource resource = new ClassPathResource(KEYPATH);
Resource resource = new ClassPathResource(KEYPATH);
InputStream in = resource.getInputStream();
前端后端base64 传输图片 ,ase64只是提供预览,其实可以保留原始的url传给后台的。
org.apache.commons.codec.binary.Base64.decodeBase64(这里传入src属性里的base64 的一串字符串);
不管是不是图片,如果你用的是base64,请保持相同的编解码器,比如apache.common和java.util中图片的解码是不同的
base64 解码方式1 binary.Base64
org.apache.commons.codec.binary.Base64
base64 解码方式2 util.Base64
java.util.Base64
字节流转成输入流 ByteArrayInputStream
方式1
InputStream inn = new ByteArrayInputStream(bytes);
输入流转成字节流 InputStream.read(bytesBase64);
byte[] bytesBase64 = new byte[resource.getInputStream().available()];
InputStream in = resource.getInputStream();
in.read(bytesBase64);
字节流转字符串 new String (byte[])
byte[] bytesBase64 = new byte[resource.getInputStream().available()];
in.read(bytesBase64);
String base64 = new String(bytesBase64);
inputStream 转成文件
FileUtils.copyInputStreamToFile(inn,fileTarget);
inputStream 转成文件
File fileTarget = new File("F:\行程单及发票OFD\tmp.jpg");
FileOutputStream fox = new FileOutputStream(fileTarget);
fox.write(bytes);
fox.flush();
字节流转OutputStream
OutputStream out = new FileOutputStream("F:\行程单及发票OFD\tmp.jpg");
out.write(bytes);
out.flush();
out.close();
读取jar base64字符串 文件
//读取jar包资源文件 为字符串
org.springframework.core.io.Resource resource = new ClassPathResource("zizhen");
byte[] bytesBase64 = new byte[resource.getInputStream().available()];
InputStream in = resource.getInputStream();
in.read(bytesBase64);
String base64OriginStr = new String(bytesBase64);
把images字符串修改一下,去掉base64头
//重要!!!去掉base64头
String images1 = images.substring(23);
方式一: 解密base64 图片字符串 为字节流
//
byte[] bytesX = Base64.decodeBase64(base64OriginStr);
方式一: 解密base64 图片字符串 为字节流
// Base64解码
byte[] bytes = decoder.decodeBuffer(base64OriginStr);
放大图片 通过双线性插值算法 zoomImage
public static BufferedImage zoomImage(BufferedImage originalImage, int newWidth, int newHeight) {
BufferedImage zoomedImage = new BufferedImage(newWidth, newHeight, originalImage.getType());
Graphics2D g = zoomedImage.createGraphics();
g.drawImage(originalImage, 0, 0, newWidth, newHeight, null);
g.dispose();
return zoomedImage;
}
public static void main(String[] args) {
try {
// 读取原始图片
BufferedImage originalImage = ImageIO.read(new File("F:\行程单及发票OFD\recoginse-small.jpg"));
// 设置放大后的图片尺寸
int newWidth = originalImage.getWidth() * 2;
int newHeight = originalImage.getHeight() * 2;
// 调用图片放大方法
BufferedImage zoomedImage = zoomImage(originalImage, newWidth, newHeight);
// 保存放大后的图片
ImageIO.write(zoomedImage, "jpg", new File("F:\行程单及发票OFD\zoomed.jpg"));
System.out.println("图片放大成功!");
} catch (IOException e) {
e.printStackTrace();
}
}
base64 转文件实占
public static void main(String[] args) throws Exception {
//读取jar包资源文件 为字符串
org.springframework.core.io.Resource resource = new ClassPathResource("zizhen");
byte[] bytesBase64 = new byte[resource.getInputStream().available()];
InputStream in = resource.getInputStream();
in.read(bytesBase64);
String base64OriginStr = new String(bytesBase64);
base64OriginStr = base64OriginStr.substring(23);
//解密base64 图片 为字节流
byte[] bytesX = Base64.decodeBase64(base64OriginStr);
for (int i = 0; i < bytesX.length; ++i) {
if (bytesX[i] < 0) {// 调整异常数据
bytesX[i] += 256;
}
}
// Base64Util.GenerateImage(base64,"F:\行程单及发票OFD\tmp.jpg");
BASE64Decoder decoder = new BASE64Decoder();
try {
// Base64解码
byte[] bytes = decoder.decodeBuffer(base64OriginStr);
for (int i = 0; i < bytes.length; ++i) {
if (bytes[i] < 0) {// 调整异常数据
bytes[i] += 256;
}
}
File fileTarget = new File("F:\行程单及发票OFD\tmp.jpg");
FileOutputStream fox = new FileOutputStream(fileTarget);
fox.write(bytesX);
fox.flush();
// 读取原始图片
BufferedImage originalImage = ImageIO.read(new ByteArrayInputStream(bytesX));
// BufferedImage originalImage = ImageIO.read(new File("F:\行程单及发票OFD\recoginse-small.jpg"));
// 设置放大后的图片尺寸
int newWidth = originalImage.getWidth() * 2;
int newHeight = originalImage.getHeight() * 2;
// 调用图片放大方法
BufferedImage zoomedImage = zoomImage(originalImage, newWidth, newHeight);
// 保存放大后的图片
ImageIO.write(zoomedImage, "jpg", new File("F:\行程单及发票OFD\zoomed1.jpg"));
System.out.println("图片放大成功!");
} catch (IOException e) {
e.printStackTrace();
}
}