日韩性视频-久久久蜜桃-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ò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: hd极品free性xxx护士 | 高清乱码免费看污 | 成人在线观看h | 亚洲 欧美 中文字幕 | 别揉我奶头啊嗯一区二区 | 777777av| 免费啪啪网 | 人人妻一区二区三区 | 亚洲免费婷婷 | 桃谷绘里香番号 | 国产日韩在线播放 | 日本美女高潮 | 中国美女洗澡免费看网站 | 都市激情校园春色亚洲 | xxxxwww一片| 美日韩免费视频 | 欧美天天色 | 一级黄色录像大片 | 李华月全部毛片 | 国产欧美日韩激情 | 久久久久九九 | 欧美福利一区二区 | 欧美性受xxxx黑人 | 色狠狠操| 色哟哟导航 | 美妇av| av成人天堂 | 少妇人妻真实偷人精品视频 | 亚洲97色| xxxx在线视频 | 琪琪在线视频 | www.操com| 欧美性猛交性大交 | 大尺度一区二区 | 亚洲国产欧美另类 | 国产亚洲精 | 亚洲视频一区在线 | 精品自拍一区 | 国产欧美精品一区二区在线播放 | 三级网站在线免费观看 | 亚洲成肉网 | 欧美女优在线观看 | 黄频视频在线观看 | 少妇xxxx| 国产精品色综合 | 欧美成人一区二免费视频软件 | 亚洲天堂不卡 | 日日干夜夜艹 | 成人美女毛片 | av在线电影网站 | 欧美一区二区区 | 亚洲精品在线免费观看视频 | 波多野结衣av在线观看 | 亚洲图色av| 成人动漫av在线 | 亚洲精华液一区二区 | 欧美一区二区三区成人久久片 | 日本高清视频在线观看 | 正在播放久久 | 四虎在线免费视频 | 人人草人 | 曰批女人视频在线观看 | 日韩一区二区三区精 | 超碰青娱乐 | 欧美成人综合色 | 男人的天堂手机在线 | 李丽珍裸体午夜理伦片 | av中文字| 激情小说激情视频 | 哪里可以看毛片 | 久久国产精品无码一区二区 | 亚洲第一淫片 | 欧美性做爰猛烈叫床潮 | 欧美成人午夜精品久久久 | 成人中文字幕+乱码+中文字幕 | 爱情岛黄色 | 人妻少妇精品视频一区二区三区 | 日本夜夜操| 日韩天堂av | 上原亚衣在线 | 国产区精品 | 奇米视频在线 | www国产com| www四虎影院 | zoo性欧美| 国产情侣第一页 | 在线观看成人动漫 | 老司机激情影院 | 日韩一级片在线播放 | 开心激情久久 | 国产三级做爰高清在线 | 五月天婷婷久久 | 体内射精一区二区 | 三级大片在线观看 | 久久色中文字幕 | 久久久久久久久久久久久久久久久久久 | av影音先锋 | 天堂av免费 | 日韩视频久久 |