按照你的要求編寫的Java程序如下:( 要注意的地方見語句后面的注釋)
成都創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務領域包括:成都網(wǎng)站建設、網(wǎng)站設計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務,滿足客戶于互聯(lián)網(wǎng)時代的羅江網(wǎng)站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡建設合作伙伴!
import?java.awt.image.BufferedImage;import?java.awt.image.RenderedImage;import?java.io.File;import?java.io.IOException;import?javax.imageio.ImageIO;public?class?ImageWithArray?{?public?static?void?main(String[]?args)?{??//?讀取圖片到BufferedImage??BufferedImage?bf?=?readImage("c:\\tmp\\6\\female.png");//這里寫你要讀取的絕對路徑+文件名??//?將圖片轉(zhuǎn)換為二維數(shù)組??int[][]?rgbArray1?=?convertImageToArray(bf);??//?輸出圖片到指定文件??writeImageFromArray("c:\\tmp\\2.png",?"png",?rgbArray1);//這里寫你要輸出的絕對路徑+文件名??System.out.println("圖片輸出完畢!");?}?public?static?BufferedImage?readImage(String?imageFile){??File?file?=?new?File(imageFile);??BufferedImage?bf?=?null;??try?{???bf?=?ImageIO.read(file);??}?catch?(IOException?e)?{???e.printStackTrace();??}??return?bf;?}?public?static?int[][]?convertImageToArray(BufferedImage?bf)?{??//?獲取圖片寬度和高度??int?width?=?bf.getWidth();??int?height?=?bf.getHeight();??//?將圖片sRGB數(shù)據(jù)寫入一維數(shù)組??int[]?data?=?new?int[width*height];??bf.getRGB(0,?0,?width,?height,?data,?0,?width);??//?將一維數(shù)組轉(zhuǎn)換為為二維數(shù)組??int[][]?rgbArray?=?new?int[height][width];??for(int?i?=?0;?i??height;?i++)???for(int?j?=?0;?j??width;?j++)????rgbArray[i][j]?=?data[i*width?+?j];??return?rgbArray;?}?public?static?void?writeImageFromArray(String?imageFile,?String?type,?int[][]?rgbArray){??//?獲取數(shù)組寬度和高度??int?width?=?rgbArray[0].length;??int?height?=?rgbArray.length;??//?將二維數(shù)組轉(zhuǎn)換為一維數(shù)組??int[]?data?=?new?int[width*height];??for(int?i?=?0;?i??height;?i++)???for(int?j?=?0;?j??width;?j++)????data[i*width?+?j]?=?rgbArray[i][j];??//?將數(shù)據(jù)寫入BufferedImage??BufferedImage?bf?=?new?BufferedImage(width,?height,?BufferedImage.TYPE_INT_BGR);??bf.setRGB(0,?0,?width,?height,?data,?0,?width);??//?輸出圖片??try?{???File?file=?new?File(imageFile);???ImageIO.write((RenderedImage)bf,?type,?file);??}?catch?(IOException?e)?{???e.printStackTrace();??}?}}
運行結果:
圖片輸出完畢!
原圖:
輸出圖:
先用php把數(shù)據(jù)庫中的圖片路徑讀取出來,然后把這個路徑嵌入到img元素的src中,就相當于把圖片的路徑轉(zhuǎn)化為圖片了。
在php中,有文件上傳,那么php服務器端可以接收到請求參數(shù) $_FILES,在 $_FILES數(shù)組中讀取到上傳文件的form表單名,然后在讀取的數(shù)組中可以獲取上傳文件的源文件,使用 fopen()函數(shù)就可以獲取文件的字節(jié)流了。
具體來點代碼看看吧:(假定上傳文件的表單名為 “formname”)
if($_FILES isset($_FILES["formname"])){
//獲取上傳的文件的屬性數(shù)組
$_fileinfo = $_FILES["formname"];
//獲取上傳文件的原文件名
$_filename = $_fileinfo["name"];
//獲取上傳文件的大小
$_filesize = $_fileinfo["size"];
//獲取上傳文件的臨時文件名(長文件名)
$_filesource = $_fileinfo["tmp_name"];
//以讀寫方式打開文件,并將資源綁定到一個流上
$_filestream = fopen($_filesource,"ab");
//實現(xiàn)上傳文件,其實質(zhì)是把臨時文件移動到制定的保存文件的位置
$_newfilename = "../mypath/filename.exp"; //自定義文件名,包含路徑,可以是相對路徑
move_uploaded_file($_filesource, $_newfilename);
}
前臺:
form action="跳轉(zhuǎn)頁面" method="post" enctype="multipart/form-data"
input type="file" name="fname" /
input type="submit" value="Submit" /
/form
input[type=file] 表示:需要上傳的文本或者圖片
后臺:
echo json_encode($_POST); // 輸出json 字符串
輸出的內(nèi)容是上傳到服務器的文件路徑等相關信息
使用PHP對圖片進行base64解碼輸出
?php
$img = 'test.jpg';
$base64_img = base64EncodeImage($img);
echo 'img src="' . $base64_img . '" /';
function base64EncodeImage ($image_file) {
$base64_image = '';
$image_info = getimagesize($image_file);
$image_data = fread(fopen($image_file, 'r'), filesize($image_file));
$base64_image = 'data:' . $image_info['mime'] . ';base64,' . chunk_split(base64_encode($image_data));
return $base64_image;
}
?