導航:首頁 > 編程語言 > javabyte轉image

javabyte轉image

發布時間:2022-09-17 22:00:53

❶ 求助,幫我用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;
}

❷ java如何用byte構造BufferedImage,處理之後怎麼再輸出為byte / 藍訊

ByteArrayOutputStream os=new ByteArrayOutputStream();//新建流。
BufferedImage bi=null;//BufferedImage對象。
ImageIO.write(bi, "png", os);//利用ImageIO類提供的write方法,將bi以png圖片的數據模式寫入流。
byte b[]=os.toByteArray();//從流中獲取數據數組。

❸ java怎樣把一個byte數組保存成圖片到硬碟上

轉成的圖片 要麼是個文件File 要麼是個文件流. 那都只需要通過輸入輸出流往磁碟上寫就行了

❹ java實現數組轉化成圖片 請指教

你用一個char存一個顏色是不夠的,要3個char。
另java中有Color這個類的,可以使用它來存顏色

❺ 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如何將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是可以將圖片位元組轉成圖片的,但是你需要知道接受的數據對應一個圖片有多長,可以在每個圖片數據包前面加上此次圖片的長度,按長度截取位元組,轉成圖片,或者直接將位元組轉成視頻,畢竟你是連續的圖像

❾ 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中如何把一個圖片轉換成二進制流存入到類中啊

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;
}

閱讀全文

與javabyte轉image相關的資料

熱點內容
壓縮因子定義 瀏覽:966
cd命令進不了c盤怎麼辦 瀏覽:212
葯業公司招程序員嗎 瀏覽:972
毛選pdf 瀏覽:659
linuxexecl函數 瀏覽:727
程序員異地戀結果 瀏覽:374
剖切的命令 瀏覽:228
干什麼可以賺錢開我的世界伺服器 瀏覽:290
php備案號 瀏覽:990
php視頻水印 瀏覽:167
怎麼追程序員的女生 瀏覽:487
空調外壓縮機電容 瀏覽:79
怎麼將安卓變成win 瀏覽:459
手機文件管理在哪兒新建文件夾 瀏覽:724
加密ts視頻怎麼合並 瀏覽:775
php如何寫app介面 瀏覽:804
宇宙的琴弦pdf 瀏覽:396
js項目提成計算器程序員 瀏覽:944
pdf光子 瀏覽:834
自拍軟體文件夾名稱大全 瀏覽:328