日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 综合教程 >内容正文

综合教程

base64格式的图片数据如何转成图片

發(fā)布時(shí)間:2024/8/26 综合教程 34 生活家
生活随笔 收集整理的這篇文章主要介紹了 base64格式的图片数据如何转成图片 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

base64格式的圖片數(shù)據(jù)如何轉(zhuǎn)成圖片

一、總結(jié)

一句話總結(jié):不僅要去掉前面的格式串,還需要base64_decode()解碼才行。

 1 // $base_img是獲取到前端傳遞的值
 2 $base_img = str_replace('data:image/jpg;base64,', '', $base_img);
 3 //  設(shè)置文件路徑和命名文件名稱
 4 $path = "./";
 5 $output_file = $prefix.time().rand(100,999).'.jpg';
 6 $path = $path.$output_file;
 7 //  創(chuàng)建將數(shù)據(jù)流文件寫(xiě)入我們創(chuàng)建的文件內(nèi)容中
 8  file_put_contents($path, base64_decode($base_img));
 9 // 輸出文件
10 print_r($output_file);

1、base64編碼表是怎樣的?

Base64編碼表

碼值 字符 碼值 字符 碼值 字符 碼值 字符
0 A 16 Q 32 g 48 w
1 B 17 R 33 h 49 x
2 C 18 S 34 i 50 y
3 D 19 T 35 j 51 z
4 E 20 U 36 k 52 0
5 F 21 V 37 l 53 1
6 G 22 W 38 m 54 2
7 H 23 X 39 n 55 3
8 I 24 Y 40 o 56 4
9 J 25 Z 41 p 57 5
10 K 26 a 42 q 58 6
11 L 27 b 43 r 59 7
12 M 28 c 44 s 60 8
13 N 29 d 45 t 61 9
14 O 30 e 46 u 62 +
15 P 31 f 47 v 63 /

Base64編碼說(shuō)明
  Base64編碼要求把3個(gè)8位字節(jié)(3*8=24)轉(zhuǎn)化為4個(gè)6位的字節(jié)(4*6=24),之后在6位的前面補(bǔ)兩個(gè)0,形成8位一個(gè)字節(jié)的形式。 如果剩下的字符不足3個(gè)字節(jié),則用0填充,輸出字符使用'=',因此編碼后輸出的文本末尾可能會(huì)出現(xiàn)1或2個(gè)'='。

  為了保證所輸出的編碼位可讀字符,Base64制定了一個(gè)編碼表,以便進(jìn)行統(tǒng)一轉(zhuǎn)換。編碼表的大小為2^6=64,這也是Base64名稱的由來(lái)。

2、base64可以做圖片src屬性的地址么?

可以的

src=”data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4CAMAAAAOus
bgAAAAeFBMVEUAwAD///+U5ZTc9twOww7G8MYwzDCH4==”

src或 url() 中有一大串編碼。它把一些 8-bit 數(shù)據(jù)翻譯成標(biāo)準(zhǔn) ASCII 字符,網(wǎng)上有很多免費(fèi)的base64 編碼和解碼的工具, 后面跟的一串代碼就相當(dāng)于鏈接地址。

3、Data URL scheme 支持的類型有哪些?

data:,文本數(shù)據(jù)
data:text/plain,文本數(shù)據(jù)
data:text/html,HTML代碼
data:text/html;base64,base64編碼的HTML代碼
data:text/css,CSS代碼
data:text/css;base64,base64編碼的CSS代碼
data:text/JavaScript,Javascript代碼
data:text/javascript;base64,base64編碼的Javascript代碼
data:image/gif;base64,base64編碼的gif圖片數(shù)據(jù)
data:image/png;base64,base64編碼的png圖片數(shù)據(jù)
data:image/jpeg;base64,base64編碼的jpeg圖片數(shù)據(jù)
data:image/x-icon;base64,base64編碼的icon圖片數(shù)據(jù)

4、將圖片轉(zhuǎn)化為base64格式的方法?

a、利用canvas 將圖片轉(zhuǎn)化為base64 編碼格式

dataURL =canvas.toDataURL("image/jpeg");

b、利用 html5 的 FileReader 將圖片轉(zhuǎn)化base64格式 FileReader 是H5提供的一個(gè)處理文件的API,

    var reader=new FileReader();  
    reader.readAsBinaryString(file);  

二、將base64數(shù)據(jù)流文件轉(zhuǎn)換為圖片文件

轉(zhuǎn)自或參考: https://blog.csdn.net/gu_wen_jie/article/details/79050287

前后端交互處理圖片的時(shí)候,會(huì)出現(xiàn)這樣的情況:
前端傳遞給我們后端的是base64的圖片數(shù)據(jù)流,我們需要做的就是將它轉(zhuǎn)為圖片并且保存起來(lái),根據(jù)需要再?zèng)Q定是否將圖片存儲(chǔ)路徑信息返回給前端。

下面就來(lái)說(shuō)一下這個(gè)怎么處理,其實(shí)很簡(jiǎn)單,就是一個(gè)轉(zhuǎn)碼存儲(chǔ)的過(guò)程。

1.假設(shè)現(xiàn)在前端將數(shù)據(jù)流傳過(guò)來(lái)了(這個(gè)地方你可以自己用在線工具將本地的某張圖片轉(zhuǎn)碼為base64格式然后拿來(lái)測(cè)試)

2.我們接收到之后需要進(jìn)行一個(gè)簡(jiǎn)單的寫(xiě)入和存儲(chǔ)操作。

3.代碼如下

// $base_img是獲取到前端傳遞的值
$base_img = str_replace('data:image/jpg;base64,', '', $base_img);
//  設(shè)置文件路徑和命名文件名稱
$path = "./";
$output_file = $prefix.time().rand(100,999).'.jpg';
$path = $path.$output_file;
//  創(chuàng)建將數(shù)據(jù)流文件寫(xiě)入我們創(chuàng)建的文件內(nèi)容中
 file_put_contents($path, base64_decode($base_img));
// 輸出文件
print_r($output_file);

4.ok,這樣就搞定了。你可以將路徑信息返回給前端使用。


參考:將base64數(shù)據(jù)流文件轉(zhuǎn)換為圖片文件 - CSDN博客
https://blog.csdn.net/gu_wen_jie/article/details/79050287


三、將圖片轉(zhuǎn)換base64格式,data:image/png;base64是什么?

一、我們?cè)诳创a時(shí)經(jīng)常在img或css背景圖片中看到:
src=”data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4CAMAAAAOus
bgAAAAeFBMVEUAwAD///+U5ZTc9twOww7G8MYwzDCH4==”

src或 url() 中有一大串編碼。它把一些 8-bit 數(shù)據(jù)翻譯成標(biāo)準(zhǔn) ASCII 字符,網(wǎng)上有很多免費(fèi)的base64 編碼和解碼的工具, 后面跟的一串代碼就相當(dāng)于鏈接地址。

二、目前,Data URL scheme 支持的類型:

data:,文本數(shù)據(jù)
data:text/plain,文本數(shù)據(jù)
data:text/html,HTML代碼
data:text/html;base64,base64編碼的HTML代碼
data:text/css,CSS代碼
data:text/css;base64,base64編碼的CSS代碼
data:text/JavaScript,Javascript代碼
data:text/javascript;base64,base64編碼的Javascript代碼
data:image/gif;base64,base64編碼的gif圖片數(shù)據(jù)
data:image/png;base64,base64編碼的png圖片數(shù)據(jù)
data:image/jpeg;base64,base64編碼的jpeg圖片數(shù)據(jù)
data:image/x-icon;base64,base64編碼的icon圖片數(shù)據(jù)

三、js將圖片轉(zhuǎn)化為base64(2種方法)

利用canvas 將圖片轉(zhuǎn)化為base64 編碼格式

var canvas = document.createElement("canvas");
var ctx = canvas.getContext('2d'),
   img = new Image;
   img.src="./vheider.jpg";
 //  img.setAttribute('crossOrigin', 'anonymous')  // 圖片跨域時(shí)有用
   img.onload = function(){
       canvas.height = img.height;
       canvas.width = img.width;
       ctx.drawImage(img,0,0);
       dataURL =canvas.toDataURL("image/jpeg");

        $('#img').attr('src', dataURL);
        console.log(canvas.toDataURL("image/jpeg"))

  };

注意: 這里要在服務(wù)端打開(kāi),不然瀏覽器可能會(huì)報(bào) index.html:41 Uncaught SecurityError: Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported. 錯(cuò)誤


2 . 利用 html5 的 FileReader 將圖片轉(zhuǎn)化base64格式

FileReader 是H5提供的一個(gè)處理文件的API,
① 判斷瀏覽器是否支持FileReader

if(window.FileReader){
    //處理文件
}else{
   return "瀏覽器不支持FileRedaer"
}

② FileReader 接口有四個(gè)方法:

readAsBinaryString (file) 將文件讀取為二進(jìn)制碼
readAsDataURL (file) 將文件讀取為 DataURL
readAsText (file,encoding) 將文件讀取為文本(第二個(gè)參數(shù)是編碼格式,一般默認(rèn)是UTF-8)
about 中斷讀取

③ FileReader還提供給了一些事件:

onabort 中斷時(shí)觸發(fā)
onerror 出錯(cuò)時(shí)觸發(fā)
onload 文件讀取成功完成時(shí)觸發(fā)
onloadend 讀取完成觸發(fā),無(wú)論成功或失敗
onloadstart 讀取開(kāi)始時(shí)觸發(fā)
onprogress 讀取中

注意:重點(diǎn)內(nèi)容
FileReader 讀取后的文件不會(huì)返回給FileReader 本身, 而是存儲(chǔ)在了 result 中

HTML

<input type="file" id="file"  multiple="multiple">
<div id="imgDiv"></div>       

JS

var result = document.getElementById("result");  
var file = document.getElementById("file");
file.change=function(){
    var file = file.files[0]
    var reader=new FileReader();  

    reader.readAsBinaryString(file);  
    reader.onload=function (e){  
        imgDiv.innerHTML='<img src="'+this.result+'" alt=""/>'  
        console.log(this) // 打印出轉(zhuǎn)換后的 file 文件對(duì)象
    }  
}


參考:將圖片轉(zhuǎn)換base64格式,data:image/png;base64是什么? - CSDN博客
https://blog.csdn.net/webxiaoma/article/details/70053444

四、base64格式圖片數(shù)據(jù)上傳到服務(wù)器并轉(zhuǎn)圖片(測(cè)試成功)

1、截圖

2、代碼

ajax上傳數(shù)據(jù)代碼

$.post("index.php", { dataURL: dataURL},
    function(data){
    alert("Data Loaded: " + data);
});

后臺(tái)php處理數(shù)據(jù)代碼(我的數(shù)據(jù)格式是jpeg)

 1 <?php
 2 //print_r($_POST);
 3 $base_img=$_POST['dataURL'];
 4 // $base_img是獲取到前端傳遞的值
 5 $base_img = str_replace('data:image/jpeg;base64,', '', $base_img);
 6 //  設(shè)置文件路徑和命名文件名稱
 7 $path = "./";
 8 $output_file = time().rand(100,999).'.jpeg';
 9 $path = $path.$output_file;
10 //  創(chuàng)建將數(shù)據(jù)流文件寫(xiě)入我們創(chuàng)建的文件內(nèi)容中
11  file_put_contents($path, base64_decode($base_img));
12 // 輸出文件
13 print_r($output_file);
14   ?>

總結(jié)

以上是生活随笔為你收集整理的base64格式的图片数据如何转成图片的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 性色一区二区三区 | 一级欧美在线 | 日韩免费影视 | 日韩三级不卡 | 特黄特色大片免费视频大全 | 艳妇臀荡乳欲伦交换h漫 | 中文无码一区二区三区在线观看 | 欧美成人午夜电影 | 天天曰| 国产日韩欧美激情 | mm131美女视频 | 99国产精品自拍 | 成人毛片视频网站 | 国产又猛又黄又爽 | 小日子的在线观看免费第8集 | 色哟哟视频 | 色噜噜一区二区三区 | 激情国产| 欧美精品免费一区二区 | 国产成人无码精品久久 | 网爆门在线 | 影音先锋在线播放 | 日韩欧美aaa| 香港台湾日本三级大全 | 黄视频网站在线 | 国产艳情片| 中文字幕在线观看av | 欧美日韩中文在线观看 | 午夜在线视频免费观看 | 爱啪啪导航 | 色婷婷av一区二区三区软件 | av最新版天堂资源在线 | 黄色在线免费看 | 日韩综合在线观看 | 国产无码久久精品 | av动漫天堂 | 四虎影视大全 | 五月天综合网站 | 蜜臀网在线 | 精品久久久久久久久久久久久久久久 | 91娇羞白丝网站 | 狠狠干网站 | jizz俄罗斯 | 桃色在线视频 | 日韩成人动漫在线观看 | 日韩毛片中文字幕 | 色涩色| 亚洲免费视频播放 | 好色999| 91精品国产综合久久香蕉 | 黄色福利网| 中国黄色三级 | 欧美黑人性生活 | 国产av一区二区三区精品 | 精品国产一区二区三区久久狼黑人 | 性色视频| 国产一级片精品 | 国产精品国产三级国产aⅴ下载 | 老鸭窝一区二区 | 亚洲七区 | 亚洲精品电影网 | 伊人网在线视频观看 | 18禁男女爽爽爽午夜网站免费 | 人妻少妇精品视频一区二区三区 | 蜜臀久久99精品久久久久久 | 91啪国产| 美足av | 精品午夜福利在线观看 | 日韩一区在线免费观看 | 波多野结衣久久 | 国产一区二区视频免费 | www.狠狠插 | 亚洲经典一区二区三区四区 | 午夜精品极品粉嫩国产尤物 | av黄色免费网站 | 国产精品一区二区三区不卡 | 日批网站在线观看 | aaa黄色一级片| 成年人的免费视频 | 亚洲最大成人在线 | 黄色麻豆视频 | 激情无遮挡| av影院在线| 亚洲 欧美 中文字幕 | 黄在线观看免费 | 9i免费看片黄| 人人操在线播放 | 免费无遮挡无码永久在线观看视频 | 欧美日韩在线影院 | 五月婷婷在线观看 | 少妇扒开粉嫩小泬视频 | 在线天堂v | 国产91在线播放精品91 | 国产精品自慰网站 | 亚洲美免无码中文字幕在线 | 国产后入又长又硬 | 轻点好疼好大好爽视频 | 人妻一区二区三区在线 | 国产精品午夜影院 |