Base 64 와 img 의 상호 전환
2278 단어 자바
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import org.apache.commons.codec.binary.Base64;
import sun.misc.BASE64Decoder;
/**
* Base64
* base64 img
* @ 2019-12-02 10:20
*/
public class Img2Base64Util {
/**
* Base64
* @param imgFile
* @return
*/
public static String getImgStr(String imgFile) {
// , Base64
InputStream in = null;
byte[] data = null;
//
try {
in = new FileInputStream(imgFile);
data = new byte[in.available()];
in.read(data);
in.close();
} catch (IOException e) {
e.printStackTrace();
}
return new String(Base64.encodeBase64(data));
}
/**
* Base64
* @param imgStr
* @param imgFilePath
* @param filename
* @return
*/
public static String generateImage(String imgStr, String imgFilePath,String filename) {
// , jpeg。 , 。
imgStr=imgStr.replace("data:image/jpeg;base64,", "");
// , 。
File file = new File(imgFilePath);
if (!file.exists()) {
file.mkdirs();
}
if (imgStr == null) //
return null;
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;
}
}
// jpg
OutputStream out = new FileOutputStream(imgFilePath+filename);
out.write(b);
out.flush();
out.close();
return filename;
} catch (Exception e) {
return null;
}
}
}
2. 흔히 볼 수 있 는 문제:
base 64 인 코딩 문자열 을 img 그림 으로 디 코딩 할 때 문자열 의 'data: image/jpg, base 64' 를 비 워 야 합 니 다. 그렇지 않 으 면 디 코딩 된 그림 이 잘못 되 었 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.