java如何實(shí)現(xiàn)圖片轉(zhuǎn)化為數(shù)據(jù)流
實(shí)現(xiàn)圖片轉(zhuǎn)化為數(shù)據(jù)流
方法如下
/** * Copy file from inputStream * * @param is * @param f2 * @throws Exception */ public static void copyFileFromInputStream( InputStream is, File f2 ) throws Exception { int length = 2097152; FileOutputStream out = new FileOutputStream( f2 ); byte[] buffer = new byte[length]; while (true) { int ins = is.read( buffer ); if ( ins == -1 ) { is.close( ); out.flush( ); out.close( ); break; } out.write( buffer , 0 , ins ); } }
使用方法如下
String image = "XXX.jpg"; File imageFile= new File(System.getProperty("java.io.tmpdir"), image); //System.getProperty("java.io.tmpdir")是獲取操作系統(tǒng)緩存的臨時(shí)目錄 copyFileFromInputStream(XXXX.class.getResourceAsStream("images/" + image),imageFile); // 系統(tǒng)會(huì)讀取XXX.class路徑中images文件夾下的xxx.jpg文件,將其轉(zhuǎn)換為數(shù)據(jù)流
把圖片轉(zhuǎn)換成二進(jìn)制流的代碼
在學(xué)習(xí)期間,把開發(fā)過程經(jīng)常用到的一些代碼段做個(gè)備份,下邊代碼內(nèi)容是
java中如何把圖片轉(zhuǎn)換成二進(jìn)制流的代碼
應(yīng)該能對(duì)各朋友也有用處
public byte[] SetImageToByteArray(string fileName) { FileStream fs = new FileStream(fileName, FileMode.Open); int streamLength = (int)fs.Length; byte[] image = new byte[streamLength]; fs.Read(image, 0, streamLength); fs.Close(); return image; } public byte[] SetImageToByteArray(FileUpload FileUpload1) { Stream stream = FileUpload1.PostedFile.InputStream; byte[] photo = new byte[FileUpload1.PostedFile.ContentLength]; stream.Read(photo, 0, FileUpload1.PostedFile.ContentLength); stream.Close(); return photo; }
從SQLServer數(shù)據(jù)庫(kù)讀取Image類型的數(shù)據(jù)
并轉(zhuǎn)換成bytes[]或Image圖像文件
{ Image image; MemoryStream mymemorystream = new MemoryStream(mybyte,0, mybyte.Length); image = Image.FromStream(mymemorystream); return image; }
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java定時(shí)任務(wù)Timer、TimerTask與ScheduledThreadPoolExecutor詳解
這篇文章主要介紹了Java定時(shí)任務(wù)Timer、TimerTask與ScheduledThreadPoolExecutor詳解, 定時(shí)任務(wù)就是在指定時(shí)間執(zhí)行程序,或周期性執(zhí)行計(jì)劃任務(wù),Java中實(shí)現(xiàn)定時(shí)任務(wù)的方法有很多,本文從從JDK自帶的一些方法來實(shí)現(xiàn)定時(shí)任務(wù)的需求,需要的朋友可以參考下2024-01-01JAVA對(duì)字符串進(jìn)行32位MD5加密的實(shí)踐
本文主要介紹了JAVA對(duì)字符串進(jìn)行32位MD5加密的實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08Mybatis注解方式完成輸入?yún)?shù)為list的SQL語(yǔ)句拼接方式
這篇文章主要介紹了Mybatis注解方式完成輸入?yún)?shù)為list的SQL語(yǔ)句拼接方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11Mybatis傳遞多個(gè)參數(shù)進(jìn)行SQL查詢的用法
本文給大家介紹Mybatis傳遞多個(gè)參數(shù)進(jìn)行SQL查詢的用法的相關(guān)知識(shí),本文還給大家介紹了mybatis通過Map傳遞多個(gè)參數(shù)和JavaBean傳遞多個(gè)參數(shù),本文介紹的非常詳細(xì),具有參考借鑒價(jià)值,感興趣的朋友一起學(xué)習(xí)吧2016-06-06mybatis一對(duì)多兩種mapper寫法實(shí)例
這篇文章主要介紹了mybatis一對(duì)多兩種mapper寫法實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-12-12java動(dòng)態(tài)口令登錄實(shí)現(xiàn)過程詳解
這篇文章主要介紹了java動(dòng)態(tài)口令登錄實(shí)現(xiàn)過程詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07Intellij IDEA基于Springboot的遠(yuǎn)程調(diào)試(圖文)
這篇文章主要介紹了Intellij IDEA基于Springboot的遠(yuǎn)程調(diào)試(圖文),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10