① js鍥劇墖鍘嬬緝鍒版寚瀹氬ぇ灝忎笉鍙-java濡備綍瀹炵幇鎶婁竴涓澶у浘鐗囧帇緙╁埌鎸囧畾澶у皬鐨勫浘鐗囦笖闀垮芥瘮涓嶅彉錛
js鍘嬬緝鍥劇墖鍒板滻瀹氬儚緔犱互鍐咃紝500k涓轟緥鏈鏂囨棬鍦ㄦ帰絀秊s鍘嬬緝鍥劇墖鐨勪袱縐嶆柟寮:
鏀瑰彉鍥劇墖闀垮
,
鏀瑰彉鍥劇墖璐ㄩ噺
,鍜岀粨鍚堜簡浠ヤ笂涓よ呯殑
鏈緇堟柟妗
銆
棣栧厛,闃呰繪湰鏂囬渶瑕佺煡閬揷anvas鐨勪袱涓鏂規硶
榪欎袱涓鏂規硶鍏蜂綋鐨勮存槑鍙浠ュ湪MDN涓婃煡鐪,鍏充簬鍥劇墖鍘嬬緝,涔熸湁寰堝氱幇鎴愮殑鍗氬㈠彲浠ョ洿鎺ョ敤銆備絾鏄閭d簺鍗氬㈤兘鏈変釜闂棰,騫舵病鏈夊叧蹇冧箣鍚庡浘鐗囩殑鍘嬬緝璐ㄩ噺銆
鎴戣瘯鐫鐢ㄤ竴涓鐜版垚鐨勪緥瀛愬幓璺戜簡涓涓,涓涓1.7M鐨勫浘鐗囧帇緙╁埌浜23k,鍫縐板儚緔犵駭姣佺伃鎬х牬鍧忋
鍋囧備竴寮犲ぇ鍥懼彲鑳藉寘鍚鐫寰堝氭枃瀛楃瓑鍏抽敭淇℃伅,蹇呴』涓婁紶涔嬪悗浣跨敤鏂硅兘娓呮櫚杈ㄨゃ傛墍浠ヨ佸帇緙╀箣鍚庤川閲忓敖鍙鑳芥帴榪500k鐨勩500k鍍忕礌浠ュ唴,灝辨槸鑻ヤ竴寮犲浘瀹藉害涓1024,鍒欓珮搴︿笉鑳借秴榪500銆傚洜涓哄浘鐗囨湁鍏朵粬鐨勪俊鎮,涔熸槸瑕佸崰澶у皬鐨勩傚嵆涓嶅緱澶т簬
1024*500
銆
鎵浠,鏍規嵁闇奼,涓婁紶鍥劇墖涓嶈兘瓚呰繃500k鐨勬儏鍐典笅灝藉彲鑳戒繚鐣欏浘鐗囩殑娓呮櫚搴︺傚綋鐒跺傛灉鍙浠ョ殑鎯呭喌涓嬬敤涓婇潰鎻愬埌鐨勮劇疆鍘嬬緝紼嬪害涓0.9,0.8璇曡瘯鐪,鍥劇墖璐ㄩ噺鍙浠ユ帴鍙,澶у皬浼氭湁澶у箙搴︾殑緙╁皬銆
濡傛灉涓嶅帇緙,闈犺皟鏁村浘鐗囬暱瀹藉幓鎺у埗涓婁紶澶у皬鍛?
鍘熺悊寰堢畝鍗,灝辨槸闈犱笉鏂鍦扮緝灝忛檺瀹氱殑鏈澶у介珮,鐩村埌鏈緇堥暱瀹界殑縐灝忎簬瑙勫畾鐨勫ぇ灝忋
榪欑嶆柟娉曟湁鍙鑳芥渶鍚庡緱鍑虹殑鍥劇墖鐨勫ぇ灝忎細鐣ュぇ浜庤勫畾澶у皬,鍘熷洜涓婃枃涔熸彁鍒拌繃浜,濡傛灉鎯充嬌鐢ㄨ繖縐嶆柟娉,鍙鑷琛屽啀璋冩暣涓涓嬨
涓婇潰鐨勬柟娉曟湁涓闂棰,灝辨槸鏀瑰彉浜嗗浘鐗囩殑鍘熷嬮暱瀹姐傚傛灉涓涓鍥劇殑闀垮借凍澶熷ぇ,鍘嬬緝鍥劇墖璐ㄩ噺,緋婁竴鐐逛絾鏄鍐呭圭湅寰楁竻涔熸槸ok鐨勫槢銆傛墍浠,璺熶笂闈㈠悓鐞,鎴戜滑鍙浠ヤ笉鏂璋冩暣鍥劇墖鐨勮川閲忚懼畾鐩村埌澶у皬鍚堥,閭d箞,濡備綍鍦ㄥ浘鐗囦笂浼犱箣鍓嶇煡閬撳浘鐗囩殑澶у皬鍛?
棣栧厛,闇瑕佺煡閬撶殑涓鐐規槸,鍘嬬緝涔嬪悗鎷垮埌鐨刡ase64瀛楃︿覆浼氳漿鎴恇lob瀵硅薄,鐒跺悗浼犵粰鏈嶅姟絝銆
鍙浠ユ煡闃呮枃妗,blob瀵硅薄鏈変釜灞炴ф槸size
榪欎釜size灝辨槸涓婁紶涔嬪悗瀹為檯鐨勬枃浠跺ぇ灝忋
鍙傜収涓婇潰鐨勬濊礬,鍙浠ユ瘡嬈℃敼鍙('image/'+fileType,level);level鐨勫,鍘昏皟鏁村帇緙╁浘鐗囪川閲,鐒跺悗鐢╞lob瀵硅薄鐨剆ize鍘婚獙璇佹槸鍚︽弧瓚500k浠ュ唴鐨勯渶奼傘
鍏充簬鐨刲evel鍒板簳鏄鎬庝箞璁$畻鐨,MDN鏂囨。閲屼篃娌¤,鍐欎簡涓寰鐜涓嬈″噺灝0.1鐨刲evel鍘嬬緝浜嗗嚑涓鍥劇墖
鐢ㄥ姞鍑忎箻闄ょ畻浜嗕竴涓,娌℃壘鍒拌勫緥,鏁板︿笉濂芥斁寮冧簡(榪欎釜涓滆タ濂藉儚涔熶笉鏄鑳借傚療鍑烘潵鐨,鐪嬬粨鏋滆窡鍒濆嬪ぇ灝忔病鍟ュ叧緋)銆
榪欓噷瑕佹敞鎰忕殑鏄,鏈夊彲鑳介亣鍒拌秴澶у浘鐗,0.1鐨刲evel鍙鑳戒笉瓚充互鍘嬬緝鍒500k,鎵浠ュ皬浜0.1鐨勬椂鍊,鏀瑰彉level閫掑噺鐨勫樊鍊肩戶緇鍘嬬緝涓嬪幓
鍦ㄥ紑濮嬫帴鏀跺埌鍥劇墖鐨勬椂鍊欑粰涓涓猯oading澧炲姞鐢ㄦ埛鐨勮愬績濂戒簡,loading涓囧瞾~
鍏跺疄鍗曠函鐨勫帇緙╄川閲忛亣鍒扮◢澶х殑鍥劇墖,浼氬艱嚧欏甸潰楂橀戣$畻,鐒跺悗欏甸潰鍩烘湰灝辯敤涓嶄簡浜--銆傛湁灝濊瘯榪囩敤iphone鐨勪竴涓灞忓箷鎴鍥(10M宸﹀彸),鍘嬬殑鏃跺欑◢榪囦竴浼,鏁翠釜鎵嬫満閮藉湪鍙戠儷,鍙鑳芥潃榪涚▼銆
鎵浠,鑻ュ歸暱搴︽病鏈夌壒孌婄殑闄愬埗,鍙浠ュ仛涓涓緙╂斁,鍘誨姞蹇鍘嬬緝鐨勮繘搴,鎻愰珮鑳藉帇緙╃殑鍥劇墖澶у皬涓婇檺銆
欏甸潰鍒頒簡ios涓婅繕鏄涓嶈--,鍙浠ョ湅鍒版渶鍚庡浘鐗噇evel涓0.001,鏈闀胯竟涓764銆
闂棰樿繕鏄寰鐜嬈℃暟榪樻槸榪囧,璁$畻棰戠巼澶楂樸備粠鍥句腑鍙鐪嬪嚭,瀵逛簬澶у浘鏉ヨ,鍒濆嬭懼畾鐨刲evel鍜屽浘鐗囧昂瀵歌繃浜庡芥澗,鍙浠ヤ紭鍖栦竴涓嬪垵濮媗evel鍜屽昂瀵搞
鏈夌殑鏃跺欒繕浼氶亣鍒頒竴寮犲浘鐗囨棤璁哄備綍涔熷帇涓嶅埌500k,灝辨槸涓婁竴嬈″拰榪欐$殑鍘嬬緝鍚庡ぇ灝忔病鏈夊彉鍖,榪欑嶆儏鍐甸渶瑕佹姏閿,涓嶈╁驚鐜緇х畫銆
澶у浘鐗囩殑絳夊緟鏃墮棿紼嶉暱,鍙浠ョ粰鐢ㄦ埛鍏堥勮堜竴涓猙ase64鐨勫浘鐗囧炲姞絳夊緟鑰愬績,鏂規硶鍚嶄負getImgBase64,榪欓噷閮戒竴騫剁粰鍑轟簡
瑙e喅鐨勯殣鎮:涓婇潰榪欎釜鏂規堜細鍑虹幇鎴戦渶瑕佷竴涓500k鐨勭収鐗,鍘嬪埌浜520k涔嬪悗,鍐嶅帇浜嗕竴嬈°傛湁鏃跺欒繖鏈鍚庣殑涓嬈′細鐗瑰埆澶稿紶,鐩存帴灝嗗浘鐗囧紕鍒頒簡鍑犲嶮k銆
鍙傝冧簡:
榪欎釜搴撻噷闈㈡湁涓鏂規硶compressAccurately,榪欎釜鏂規硶鍙浠ユ瘮杈冪簿鍑嗗湴鍘嬬緝銆傚伔鍋風炕浜嗕竴涓嬫簮鐮併
鍏跺疄涓婁竴涓鏂規堢殑鐥涚偣灝卞湪浜,濡備綍鍦ㄦ瘡涓涓鍘嬬緝寰鐜閲屽勭悊灝哄稿拰鍘嬬緝姣斾緥銆
鎬葷粨
濡傛湁綰版紡,嬈㈣繋鎸囨
java濡備綍瀹炵幇鎶婁竴涓澶у浘鐗囧帇緙╁埌鎸囧畾澶у皬鐨勫浘鐗囦笖闀垮芥瘮涓嶅彉錛java瑕佸疄鐜版妸涓涓澶у浘鐗囧帇緙╁埌鎸囧畾澶у皬鐨勫浘鐗囦笖闀垮芥瘮涓嶅彉鍙浠ュ皾璇曚互涓嬫搷浣:
寤虹珛涓涓獮ffineTransform
AffineTransform(doublem00,doublem10,doublem01,doublem11,doublem02,doublem12)
杞鎹㈢煩闃,緙╂斁姣旇緝綆鍗(鐭╅樀鍙浠ュ共寰堝氫簨鎯,鎯沖仛鍥懼儚澶勭悊杞浠跺彲浠ョ爺絀朵笅)
[x'][m00m01m02][x][m00x+m01y+m02]
[y']=[m10m11m12][y]=[m10x+m11y+m12]
[1][001][1][1]
10鍊嶆瘮杈冮毦綆(鏍瑰彿10鍟,褰撶劧浣犳兂綆椾篃琛),9鍊嶅ソ鐐(9鐨勫紑鏂規槸3),m00涓1/3,m01涓0,m02涓0,m10涓0,m11涓1/3,m12涓0銆
鍐嶅緩涓涓獮ffineTransformOp,鎶婁笂闈㈢殑杞鎹浼犺繘鍘
AffineTransformOp(AffineTransformxform,intinterpolationType)
鏈鍚庤皟鐢ˋffineTransformOp鐨凚ufferedImagefilter(BufferedImagesrc,BufferedImagedst),src浼犲師鍥劇墖,榪斿洖鍊煎氨鏄鎯寵佺殑Image,娉ㄦ剰鏄榪斿洖鍊,涓嶆槸dst,涓嶆槑鐧藉彲浠ョ湅涓婮avaAPI
java濡備綍瀹炵幇鎶婁竴涓澶у浘鐗囧帇緙╁埌鎸囧畾澶у皬鐨勫浘鐗囦笖闀垮芥瘮涓嶅彉錛java瑕佸疄鐜版妸涓涓澶у浘鐗囧帇緙╁埌鎸囧畾澶у皬鐨勫浘鐗囦笖闀垮芥瘮涓嶅彉鍙浠ュ皾璇曚互涓嬫搷浣:
寤虹珛涓涓獮ffineTransform
AffineTransform(doublem00,doublem10,doublem01,doublem11,doublem02,doublem12)
杞鎹㈢煩闃,緙╂斁姣旇緝綆鍗(鐭╅樀鍙浠ュ共寰堝氫簨鎯,鎯沖仛鍥懼儚澶勭悊杞浠跺彲浠ョ爺絀朵笅)
[x'][m00m01m02][x][m00x+m01y+m02]
[y']=[m10m11m12][y]=[m10x+m11y+m12]
[1][001][1][1]
10鍊嶆瘮杈冮毦綆(鏍瑰彿10鍟,褰撶劧浣犳兂綆椾篃琛),9鍊嶅ソ鐐(9鐨勫紑鏂規槸3),m00涓1/3,m01涓0,m02涓0,m10涓0,m11涓1/3,m12涓0銆
鍐嶅緩涓涓獮ffineTransformOp,鎶婁笂闈㈢殑杞鎹浼犺繘鍘
AffineTransformOp(AffineTransformxform,intinterpolationType)
鏈鍚庤皟鐢ˋffineTransformOp鐨凚ufferedImagefilter(BufferedImagesrc,BufferedImagedst),src浼犲師鍥劇墖,榪斿洖鍊煎氨鏄鎯寵佺殑Image,娉ㄦ剰鏄榪斿洖鍊,涓嶆槸dst,涓嶆槑鐧藉彲浠ョ湅涓婮avaAPI
② JAVA怎麼將pdf的base64轉換成jpg的base64
package com.aiait.base.util;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.rendering.ImageType;
import org.apache.pdfbox.rendering.PDFRenderer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.aiait.base.service.impl.base.SearchServiceImpl;
import org.apache.pdfbox.*;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.text.DecimalFormat;
import java.util.Date;
import javax.imageio.ImageIO;
import org.apache.commons.lang3.StringUtils;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
public class PDFUtil {
// logger
private static final Logger lOGGER = LoggerFactory.getLogger(PDFUtil.class);
public static void main(String[] args) {
// pdfTojpg("C://Test//eClaimPDF//1//Others.pdf","C://Test//eClaimPDF//WrittenConfirmation.jpg");
Date timeDiffE = null;
Date timeDiffL = null;
timeDiffE = new Date();
base64PdfToJpg(pdfBase64);
timeDiffL = new Date();
lOGGER.info("base64PdfToJpg use time: " + getDiffTime(timeDiffL, timeDiffE) + "s");
}
private static String base64PdfToJpg(String base64Pdf) {
String jpg_base64 = null;
int pdfdpi = 400;
BASE64Decoder decoder = new BASE64Decoder();
byte[] pdf_bytes = null;
try {
pdf_bytes = decoder.decodeBuffer(base64Pdf);
} catch (IOException e1) {
e1.printStackTrace();
}
try (final PDDocument document = PDDocument.load(pdf_bytes)) {
int size = document.getNumberOfPages();
/*圖像合並使用參數*/
// 定義寬度
int width = 0;
// 保存一張圖片中的RGB數據
int[] singleImgRGB;
// 定義高度,後面用於疊加
int shiftHeight = 0;
//保存每張圖片的像素值
BufferedImage imageResult = null;
// 利用PdfBox生成圖像
PDDocument pdDocument = document;
PDFRenderer renderer = new PDFRenderer(pdDocument);
/*根據總頁數, 按照50頁生成一張長圖片的邏輯, 進行拆分*/
// 每50頁轉成1張圖片
int pageLength = size; //有多少轉多少
// 總計循環的次數
int totalCount = pdDocument.getNumberOfPages() / pageLength + 1;
for (int m = 0; m < totalCount; m++) {
for (int i = 0; i < pageLength; i++) {
int pageIndex = i + (m * pageLength);
if (pageIndex == pdDocument.getNumberOfPages()) {
System.out.println("m = " + m);
break;
}
// 96為圖片的dpi,dpi越大,則圖片越清晰,圖片越大,轉換耗費的時間也越多
BufferedImage image = renderer.renderImageWithDPI(pageIndex, 106, ImageType.RGB);
int imageHeight = image.getHeight();
int imageWidth = image.getWidth();
if (i == 0) {
//計算高度和偏移量
//使用第一張圖片寬度;
width = imageWidth;
// 保存每頁圖片的像素值
// 加個判斷:如果m次循環後所剩的圖片總數小於pageLength,則圖片高度按剩餘的張數繪制,否則會出現長圖片下面全是黑色的情況
if ((pdDocument.getNumberOfPages() - m * pageLength) < pageLength) {
imageResult = new BufferedImage(width, imageHeight * (pdDocument.getNumberOfPages() - m * pageLength), BufferedImage.TYPE_INT_RGB);
} else {
imageResult = new BufferedImage(width, imageHeight * pageLength, BufferedImage.TYPE_INT_RGB);
}
} else {
// 將高度不斷累加
shiftHeight += imageHeight;
}
singleImgRGB = image.getRGB(0, 0, width, imageHeight, null, 0, width);
imageResult.setRGB(0, shiftHeight, width, imageHeight, singleImgRGB, 0, width);
}
// System.out.println("m = " + m);
File outFile = new File("C://Test//eClaimPDF//WrittenConfirmation.png");
System.out.println(outFile.getName());
// 寫圖片
ImageIO.write(imageResult, "png", outFile);
// 這個很重要,下面會有說明
shiftHeight = 0;
}
pdDocument.close();
ByteArrayOutputStream baos = new ByteArrayOutputStream();//io流
ImageIO.write(imageResult, "png", baos);//寫入流中
byte[] jpg_Bytes = baos.toByteArray();//轉換成位元組
BASE64Encoder encoder = new BASE64Encoder();
jpg_base64 = encoder.encodeBuffer(jpg_Bytes).trim();//轉換成base64串
jpg_base64 = jpg_base64.replaceAll(" ", "").replaceAll(" ", "");//刪除
// System.out.println("值為:"+"data:image/jpg;base64,"+jpg_base64);
} catch (Exception e) {
e.printStackTrace();
}
return "data:image/jpg;base64,"+jpg_base64;
}
// private static String base64PdfToJpg(String base64Pdf) {
// String jpg_base64 = null;
// int pdfdpi = 400;
//
// BASE64Decoder decoder = new BASE64Decoder();
// byte[] pdf_bytes = null;
// try {
// pdf_bytes = decoder.decodeBuffer(base64Pdf);
// } catch (IOException e1) {
// e1.printStackTrace();
// }
//
// try (final PDDocument document = PDDocument.load(pdf_bytes)) {
// int size = document.getNumberOfPages();
// for (int i = 0; i < size; i++) {
// BufferedImage image = new PDFRenderer(document).renderImageWithDPI(i, pdfdpi, ImageType.RGB);
// BufferedImage image = new PDFRenderer(document).
//
// ByteArrayOutputStream baos = new ByteArrayOutputStream();//io流
// ImageIO.write(image, "jpg", baos);//寫入流中
// byte[] jpg_Bytes = baos.toByteArray();//轉換成位元組
// BASE64Encoder encoder = new BASE64Encoder();
// jpg_base64 = encoder.encodeBuffer(jpg_Bytes).trim();//轉換成base64串
// jpg_base64 = jpg_base64.replaceAll(" ", "").replaceAll(" ", "");//刪除
//
// System.out.println("值為:"+"data:image/jpg;base64,"+jpg_base64);
//
// }
// } catch (Exception e) {
// e.printStackTrace();
// }
// return "data:image/jpg;base64,"+jpg_base64;
// }
private static void pdfTojpg(String pdfFilePath, String jpgFilePath) {
File pdfFile = new File(pdfFilePath);
int idx = jpgFilePath.lastIndexOf('.');
String jpgprefix = StringUtils.substring(jpgFilePath, 0, idx);
int pdfdpi = 400;
BASE64Decoder decoder = new BASE64Decoder();
byte[] bytes = null;
try {
bytes = decoder.decodeBuffer(pdfBase64);
} catch (IOException e1) {
e1.printStackTrace();
}
// try (final PDDocument document = PDDocument.load(pdfFile, "")) {
try (final PDDocument document = PDDocument.load(bytes)) {
int size = document.getNumberOfPages();
for (int i = 0; i < size; i++) {
BufferedImage image = new PDFRenderer(document).renderImageWithDPI(i, pdfdpi, ImageType.RGB);
/*
* ByteArrayOutputStream baos = new ByteArrayOutputStream();//io流
* ImageIO.write(image, "jpg", baos);//寫入流中 byte[] imgBytes =
* baos.toByteArray();//轉換成位元組 BASE64Encoder encoder = new BASE64Encoder();
* String png_base64 = encoder.encodeBuffer(imgBytes).trim();//轉換成base64串
* png_base64 = png_base64.replaceAll(" ", "").replaceAll(" ", "");//刪除
*
* System.out.println("值為:"+"data:image/jpg;base64,"+png_base64);
*/
File jpgFile = new File(jpgprefix + "_" + i + ".jpg");
ImageIO.write(image, "jpg", jpgFile);
}
} catch (Exception e) {
e.printStackTrace();
}
}
private static Double getDiffTime(Date lateTime, Date earlyTime) {
DecimalFormat df=new DecimalFormat("0.00");//設置保留位數
return Double.valueOf(df.format((double)(lateTime.getTime() - earlyTime.getTime()) / 1000));
}
public static String pdfBase64 = "***" //from web網頁鏈接, upload a PDF to get the base64 string (Base64 - Online Base64 decoder and encoder)
}
③ javapdf格式的base編碼轉換jpg格式的base64
在格式遲臘。
1、首先,將Java PDF格式的Base64編碼啟滑碼字元串轉換為byte數組。
2、然後,旁閉使用Java的ImageIO類將byte數組轉換為BufferedImage對象。
3、接下來,將BufferedImage對象轉換為JPG格式的Base64編碼字元串。
④ java如何把圖片轉換成二進制並存到oracle的blob中,求代碼
importjavax.imageio.ImageIO;
importjava.awt.image.BufferedImage;
importjava.io.ByteArrayInputStream;
importjava.io.ByteArrayOutputStream;
importjava.io.File;
importjava.io.IOException;
publicclassImageUtils{
publicstaticvoidmain(String[]args){
Stringstr=img2Binary("C:\Users\hny\Desktop\favicon.jpg");
System.out.println(str);
binary2Img("C:\Users\hny\Desktop\favicon2.jpg",str);
}
/**
*圖片轉二進制字元串
*
*@parampath圖片路徑
*@return
*/
publicstaticStringimg2Binary(Stringpath){
Filefile=newFile(path);
if(!file.exists()){
returnnull;
}
try{
BufferedImagebi=ImageIO.read(file);
ByteArrayOutputStreambaos=newByteArrayOutputStream();
Stringsuffix=getSuffix(path);
ImageIO.write(bi,suffix,baos);
byte[]bytes=baos.toByteArray();
returnnewsun.misc.BASE64Encoder().encodeBuffer(bytes).trim();
}catch(IOExceptione){
e.printStackTrace();
}
returnnull;
}
/**
*字元串轉圖片文件
*
*@parampath圖片路徑
*@paramimgBinary圖片字元串
*/
publicstaticvoidbinary2Img(Stringpath,StringimgBinary){
try{
Filefile=newFile(path);
byte[]bytes1=newsun.misc.BASE64Decoder().decodeBuffer(imgBinary);
ByteArrayInputStreams=newByteArrayInputStream(bytes1);
BufferedImagebi1=ImageIO.read(s);
Stringsuffix=getSuffix(path);
ImageIO.write(bi1,suffix,file);
}catch(IOExceptione){
e.printStackTrace();
}
}
/**
*獲取圖片後綴名
*
*@parampath
*@return
*/
privatestaticStringgetSuffix(Stringpath){
intindex=path.contains(".")?path.lastIndexOf("."):-1;
if(index>-1){
returnpath.substring(index+1);
}
returnnull;
}
}
⑤ 將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;
}
}
希望可以幫到你。