1. 程式人生 > >利用base64對圖片進行編碼及解碼

利用base64對圖片進行編碼及解碼

試圖將圖片通過json進行傳輸,這個時候就想到利用base64編碼的方法來圖片。主要步驟有

1、對圖片檔案進行編碼,轉換為base64編碼的格式,及一長串字元;

2、可將字元通過json進行傳送;

3、目的方接收json陣列,取出編碼字串,並進行解碼,顯示圖片

該方法難點主要還是在於對圖片的編解碼處理,以下是用PHP實現的編解碼處理程式碼

<?php
        $image_file = './uploads/14391214729290.jpg';

        //讀取圖片檔案,並轉換成base64編碼格式
        $image_info = getimagesize($image_file);
        $base64_image_content = "data:{$image_info['mime']};base64," . chunk_split(base64_encode(file_get_contents($image_file)));
        //echo $base64_image_content;

        //將base64字串解碼並儲存為原來圖片格式
        if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_image_content, $result)){
            $type = $result[2];
            $new_file = "./newfile.{$type}";
            if (file_put_contents($new_file, base64_decode(str_replace($result[1], '', $base64_image_content)))){
                echo '新檔案儲存成功:', $new_file;
            }

        }
        //顯示圖片
        <img src="<?php echo $base64_image_content;?>" />
 ?>

其中,

preg_match()     

作用執行一個正則表示式匹配

返回值:返回 pattern 的匹配次數。 它的值將是0次(不匹配)或1次,因為preg_match()在第一次匹配後 將會停止搜尋。如果發生錯誤preg_match()返回 FALSE

file_put_contents ()   

作用:將一個字串寫入檔案

返回值:該函式成功將返回寫入到檔案內資料的位元組數,失敗時返回 FALSE。


相關推薦

利用base64圖片進行編碼解碼

試圖將圖片通過json進行傳輸,這個時候就想到利用base64編碼的方法來圖片。主要步驟有 1、對圖片檔案進行編碼,轉換為base64編碼的格式,及一長串字元; 2、可將字元通過json進行傳送; 3、目的方接收json陣列,取出編碼字串,並進行解碼,顯示圖片 該方法難點主

Base64圖片進行編碼解碼

public static String GetImageStr(String imgFile) { InputStream in = null; byte[] data = null; // 讀取圖片位元組陣列

Base64實現圖片編碼解碼

前端開發中,經常會遇到base64編碼的問題,以前不是很明白,今天就去研究一下到底什麼是base64編碼。 什麼是base64編碼? 還是wiki百科上解釋的比較清楚: Base64是一種基於64個可列印字元來表示二進位制資料的表示方法。由於 2^6=64 ,所

詳談jsurl進行編碼解碼(三種方式的區別)

今天在專案中發現一個bug,原作者本意是提取url中的某段資訊與一已知資訊進行比較,如果成立則執行相應程式碼。找來找去發現邏輯並沒有問題,但是前段樣式並沒有改變,通過控制檯列印提取出來的結果,發現是一段UTF8加密的文字,最後進行相應的解碼程式碼才生效。 J

jsurl進行編碼解碼(三種方式區別)

*** 只有 0-9[a-Z] $ - _ . + ! * ' ( ) , 以及某些保留字,才能不經過編碼直接用於 URL。 ***例如:搜尋的中文關鍵字,複製網址之後再貼上就會發現該URL已經被轉碼。 1、escape 和 unescape 原理:對除ASCII字母、數字、標點符號 @  *  _  +

用MATLAB圖片進行切割復原

SkipStep=8;%每一個切割後的圖片塊的大小 和遍歷的補償 M=8;%圖片塊的長 N=8;%圖片塊的寬n=0;%圖片塊的編號 I=imread('79.png');%要切割的圖片 I = im2

URL傳遞中文引數亂碼----jsurl進行編碼解碼

*** 只有 0-9[a-Z] $ - _ . + ! * ' ( ) , 以及某些保留字,才能不經過編碼直接用於 URL。 ***例如:搜尋的中文關鍵字,複製網址之後再貼上就會發現該URL已經被轉碼。 1、escape 和 unescape 原理:對除ASCII字母、數字、標點符號 @  *  _  +

javascriptHTML字元編碼解碼

<script> var HtmlUtil = { /*1.用瀏覽器內部轉換器實現html轉碼*/ htmlEncode:function (html){ //1.首先動態建立一個容器標籤元素,如DIV

C#Url進行編碼解碼

直接上程式碼: string sEncode = System.Web.HttpUtility.UrlEncode("測試檔名稱.doc"); string sFilePath = System.We

jsbase64編碼的字串進行 編碼解碼

//1.加密解密方法使用: //1.加密 var str = '124中文內容'; var base = new Base64(); var result = base.encode(str); //document.write(result); //2.解密 var result2

C語言圖片進行base64編碼

  本人最近在做基於arm平臺上的Linux系統的人臉識別模組,其中要用到的一小部分就是圖片的base64編碼的實現,自己琢磨了一下寫了一個程式,還挺好用的,可以參考一下。   #include <stdlib.h> #include <stdio.h&

利用opencv圖片大小進行修改

執行環境:ubuntu16.04 + opencv 2.4.13 + c++ (系統g++版本5.4.0) #include <iostream> #include <fstream> #include <opencv2/core/core.hpp> #inc

base64編碼解碼

encode(input) { //編碼方法 var _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";

asp中文編碼解碼,Decode和Encode中文網址處理

<%'-------------------------------------------------------------------------- '=======================================================

URL傳遞的引數進行編碼解碼

一 編碼部分 1 程式碼 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR

java圖片進行透明化處理

bsp code 1.5 round imageio class public 判斷 icon 1 package utils; 2 3 import java.awt.Graphics2D; 4 import java.awt.image.BufferedI

java圖片進行操作,僅僅是小demo

sed throw bytearray 路徑 設置圖 圖片大小 tag href 寬度 package com.cy.thumb; import java.awt.Rectangle; import java.awt.image.BufferedImage; impor

圖片進行X,Y軸的翻轉,黑白色轉變

截取 sys logs 高度 基本 ctu 初始 || indexof 做完了修改圖片的程序。用的Winfrom做的。昨天基本完成,記錄一下使用的東西。 首先是將需要加載的圖片放入picturebox控件,這裏用到了openfiledialog 打開文件對話框 s

不同局域網如何利用charlesapp進行抓包

app 設置 沒有 抓包 lan 服務 src 文章 移動 晚上遇到了一種尷尬的場景:電腦並沒有無線網卡,電腦是通過有線連接的,但是手機連的是公共的wifi,二者並不在同一個網段 在試過很多辦法無解後,終於百度出一種"曲線救國"的辦法(以榮耀8為例,其他手機可能有稍微改變

怎麼線上圖片進行壓縮不改變清晰度

隨著使用電腦的次數越來越多,電腦上面的檔案也隨之越來越多,特別是圖片這一型別的檔案,有的是在網站上的精美圖片自己喜歡的,也有的時候表情包這一類的,還有的就是自己拍的照片了,日積月累,電腦上機會堆滿了照片,不僅影響了我桌面整潔,還影響了我電腦的流暢度,為此我想了一個線上壓縮圖片的方法,今天就給大家分享一下。步驟