導航:首頁 > 編程語言 > byte轉imagejava

byte轉imagejava

發布時間:2023-06-26 18:45:08

java 怎麼把byte[]轉換成圖片顯示在頁面上

Servlet的doGet/doPost中


httpResponse.setHeader("Content-Type","image/jpeg");
Stringsql="SELECT*FROMUserWHEREID=2";
statement=connection.createStatement();
resultSet=statement.executeQuery(sql);

InputStreamin=null;
OutputStreamout=httpResponse.getOutputStream();

while(resultSet.next()){
//讀取BLOB
Blobblob=resultSet.getBlob("image");
in=blob.getBinaryStream();

byte[]blobBuffer=newbyte[1024];
intlength=0;
while((length=in.read(blobBuffer))!=-1){
out.write(blobBuffer,0,length);
}
}
in.close();

⑵ JAVA GUI 中如何將一張圖片讀到一個byte數組或其他數組中,有如何將該數組再轉換成圖片

/**
* 轉換Image數據為byte數組
* @param image
* Image對象
* @param format
* image格式字元串.如"gif","png"
* @return byte數組
*/
public static byte[] imageToBytes(Image image, String format) {
BufferedImage bImage = new BufferedImage(image.getWidth(null), image
.getHeight(null), BufferedImage.TYPE_INT_ARGB);
Graphics bg = bImage.getGraphics();
bg.drawImage(image, 0, 0, null);
bg.dispose();

ByteArrayOutputStream out = new ByteArrayOutputStream();
try {
ImageIO.write(bImage, format, out);
} catch (IOException e) {
e.printStackTrace();
}
return out.toByteArray();
}

/**
* 轉換byte數組為Image
* @param bytes
* @return Image
*/
public static Image bytesToImage(byte[] bytes) {
Image image = Toolkit.getDefaultToolkit().createImage(bytes);
try {
MediaTracker mt = new MediaTracker(new Label());
mt.addImage(image, 0);
mt.waitForAll();
} catch (InterruptedException e) {
e.printStackTrace();
}

return image;
}

⑶ java中如何把一個圖片轉換成二進制流存入到類中啊

1.將Image圖像文件存入到資料庫中

我們知道資料庫里的Image類型的數據是"二進制數據",因此必須將圖像文件轉換成位元組數組才能存入資料庫中.

要這里有關數據的操作略寫,我將一些代碼段寫成方法,方便直接調用.

//根據文件名(完全路徑)
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;
}

//另外,在ASP.NET中通過FileUpload控制項得到的圖像文件可以通過以下方法
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;
}

2.從SQL Server資料庫讀取Image類型的數據,並轉換成bytes[]或Image圖像文件

//要使用SqlDataReader要載入using System.Data.SqlClient命名空間
//將資料庫中的Image類型轉換成byte[]
public byte[] SetImage(SqlDataReader reader)
{
return (byte[])reader["Image"];//Image為資料庫中存放Image類型欄位
}

//將byte[]轉換成Image圖像類型
//載入以下命名空間using System.Drawing;/using System.IO;
using System.Data.SqlClient;*/
public Image SetByteToImage(byte[] mybyte)
{
Image image;
MemoryStream mymemorystream = new MemoryStream(mybyte,0, mybyte.Length);
image = Image.FromStream(mymemorystream);
return image;
}

⑷ java 怎麼將base64轉成照片

Stringfile="......base64..........";
StringfileName=test+".jpg";
StringfilePath="/home/"+fileName;
byte[]json=null;
try{
json=file.getBytes("UTF-8");
json=Base64.decodeBase64(json);
Filefiles=newFile(filePath);
=null;
try{
imageOutput=newFileImageOutputStream(files);
imageOutput.write(json,0,json.length);
}catch(FileNotFoundExceptione){
_log.info(e.getMessage());
}catch(IOExceptione){
_log.info(e.getMessage());
}
try{
imageOutput.close();
}catch(IOExceptione){
_log.info(e.getMessage());
}
}catch(UnsupportedEncodingExceptione){
e.printStackTrace();
}

請採納,謝謝

⑸ JAVA如何將byte數組轉變為BMP

//我在程序中列印出了每一個坐標的RGB值,你自己整理整理,求個平均值,
//放到你的那個二維數組里。

//自己用畫圖工具做一個小圖片,注意圖片的名字和程序中一致哦~

import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
import java.io.*;

public class Test{
public static void main(String args[]) {
int[] rgb = new int[3];

File file = new File("a.bmp");
BufferedImage bi=null;
try{
bi = ImageIO.read(file);
}catch(Exception e){
e.printStackTrace();
}

int width=bi.getWidth();
int height=bi.getHeight();
int minx=bi.getMinX();
int miny=bi.getMinY();
System.out.println("width="+width+",height="+height+".");
System.out.println("minx="+minx+",miniy="+miny+".");

for(int i=minx;i<width;i++){
for(int j=miny;j<height;j++){
//System.out.print(bi.getRGB(jw, ih));
int pixel=bi.getRGB(i, j);
rgb[0] = (pixel & 0xff0000 ) >> 16 ;
rgb[1] = (pixel & 0xff00 ) >> 8 ;
rgb[2] = (pixel & 0xff );
System.out.println("i="+i+",j="+j+":("+rgb[0]+","+rgb[1]+","+rgb[2]+")");

}
}

}

}

⑹ Java中如何把圖片轉換成二進制流

Java中將圖片轉為二進制流只需要使用FileImageInputStream取得圖片文件,然後使用ByteArrayOutputStream 寫入到二進制流中即可,下面是詳細代碼:


//圖片到byte數組
publicbyte[]image2byte(Stringpath){
byte[]data=null;
FileImageInputStreaminput=null;
try{
input=newFileImageInputStream(newFile(path));
ByteArrayOutputStreamoutput=newByteArrayOutputStream();
byte[]buf=newbyte[1024];
intnumBytesRead=0;
while((numBytesRead=input.read(buf))!=-1){
output.write(buf,0,numBytesRead);
}
data=output.toByteArray();
output.close();
input.close();
}
catch(FileNotFoundExceptionex1){
ex1.printStackTrace();
}
catch(IOExceptionex1){
ex1.printStackTrace();
}
returndata;
}

另外,如果需要將byte[]存回圖片或轉為String,則:

//byte數組到圖片
publicvoidbyte2image(byte[]data,Stringpath){
if(data.length<3||path.equals(""))return;
try{
=newFileImageOutputStream(newFile(path));
imageOutput.write(data,0,data.length);
imageOutput.close();
System.out.println("MakePicturesuccess,Pleasefindimagein"+path);
}catch(Exceptionex){
System.out.println("Exception:"+ex);
ex.printStackTrace();
}
}
//byte數組到16進制字元串
publicStringbyte2string(byte[]data){
if(data==null||data.length<=1)return"0x";
if(data.length>200000)return"0x";
StringBuffersb=newStringBuffer();
intbuf[]=newint[data.length];
//byte數組轉化成十進制
for(intk=0;k<data.length;k++){
buf[k]=data[k]<0?(data[k]+256):(data[k]);
}
//十進制轉化成十六進制
for(intk=0;k<buf.length;k++){
if(buf[k]<16)sb.append("0"+Integer.toHexString(buf[k]));
elsesb.append(Integer.toHexString(buf[k]));
}
return"0x"+sb.toString().toUpperCase();
}

⑺ 請教java里的byte型如何通過jni的jbyte轉成opencv里的IplImage型

iplImage = cvCreateImageHeader(cvSize(width,height),depth,channels);

cvSetData(iplImage,data,step);

首先由cvCreateImageHeader()創建IplImage圖像頭,制定圖像的尺寸,深度和通道數;然後由

cvSetData()根據 BYTE*圖像數據指針設置IplImage圖像頭的數據數據,其中step指定該IplImage圖像

每行占的位元組數,對於1通道的 IPL_DEPTH_8U圖像,step可以等於width。

2.1,如果是從新創造一個Iplimage,則用IplImage* cvCreateImage( CvSize size, int depth, int

channels ),它創建頭並分配數據。

註:當不再使用這個新圖像時,要調用void cvReleaseImage( IplImage** image )將它的頭和圖像數

據釋放!

2.2,如果有圖像數據沒有為圖像頭分配存儲空間(即,沒有為IplImage*指針分配動態存儲空間),則

先調用IplImage* cvCreateImageHeader( CvSize size, int depth, int channels )創建圖像頭,再

調用void cvSetData( CvArr* arr, void* data, int step )指定圖像數據,可以理解為將這個新圖

像的數據指針指向了一個已存在的圖像數據上,不存在圖像數據存儲空間的分配操作。

註:當不再使用這個新圖像時,要調用void cvReleaseImageHeader( IplImage** image )將它的圖像

頭釋放!

2.3,如果有圖像數據也有圖像頭(用於IplImage為靜態分配存儲空間的情況),則先調用IplImage*

cvInitImageHeader( CvSize size, int depth, int channels )更改圖像頭,再調用void

cvSetData( CvArr* arr, void* data, int step )指定圖像數據。

註:因為這個新圖像使用的是其它圖像的數據和已有的圖像頭,所以不能使用cvReleaseImage將它的

頭和圖像數據釋放,也不能使用cvReleaseData將它的圖像數據釋放!

2.4,如果從已有的一個圖像創建,則用IplImage* cvCloneImage( const IplImage* image ),它製作

圖像的完整拷貝包括頭、ROI和數據。

註:當不再使用這個新圖像時,要調用void cvReleaseImage( IplImage** image )將它的頭和圖像數

據釋放!

⑻ 求助,幫我用JAVA語言寫一個位元組轉換成圖片的方法,返回圖片類型

我直接把做驗證碼的代碼發出來了。如果你不是要做驗證碼。那你自己看下就知道你問題的答案了。
//清空瀏覽器緩存。確保驗證圖片更換
response.setHeader("Cache-Control","no-cache");
response.setHeader("Pragma", "no-cache");
response.setDateHeader("Expires", -1);

//以圖片形式打開數據
response.setHeader("Content-Type","image/jpeg");
//response.setContentType("image/jpeg");

//在內存中創建一副圖片
BufferedImage image=new BufferedImage(80,30,BufferedImage.TYPE_INT_RGB);

//在圖片上寫數據
Graphics g=image.getGraphics();
g.setColor(Color.black);
//畫個寬為80.、高30的實心矩形剛好將圖片遮蓋
g.fillRect(0, 0, 80, 30);

//設置圖片上字體的顏色及格式
g.setColor(Color.red);
g.setFont(new Font("宋體",Font.BOLD,20));

//將字體寫入圖片
String num=makeNum();
//將字串保存到session中
request.getSession().setAttribute("checkcode", num);
//寫字元串。坐標是從基線為准。
g.drawString(num, 0, 20);

//將圖片輸出給瀏覽器。參數分別為要寫入的 RenderedImage。 包含格式非正式名稱的 String。 將在其中寫入數據的 OutputStream。
ImageIO.write(image, "jpg",response.getOutputStream());

}
public String makeNum(){
Random r=new Random();
String num=r.nextInt(10000000)+"";
StringBuffer stringBuffer=new StringBuffer();
for (int i = 0; i < 7-num.length(); i++) {
stringBuffer.append("0");
}
num=stringBuffer.toString()+num;
return num;
}

閱讀全文

與byte轉imagejava相關的資料

熱點內容
伺服器怎麼執行sql 瀏覽:974
小孩子命令 瀏覽:706
貸款申請系統源碼 瀏覽:266
windowsxp文件夾打開後怎麼返回 瀏覽:662
怎麼把pdf變成圖片 瀏覽:795
17年程序員事件 瀏覽:494
iishttp壓縮 瀏覽:29
公司文件加密後拷走能打開嗎 瀏覽:186
headfirstjava中文 瀏覽:894
騰訊雲伺服器怎麼放在電腦桌面 瀏覽:8
批量生成圖片的app哪個好 瀏覽:496
小米10電池校準命令 瀏覽:96
移動商城系統app如何開發 瀏覽:692
用安卓手機如何發高清短視頻 瀏覽:339
怎樣運行java程序運行 瀏覽:553
海南根伺服器鏡像雲伺服器 瀏覽:536
weka聚類演算法 瀏覽:452
視頻伺服器修復是什麼意思 瀏覽:498
python跨平台開發 瀏覽:916
音遇app全民k歌從哪裡下載 瀏覽:646