JavaScript を使用して画像を Base64 文字列に変換する

Anika Tabassum Era 2023年10月12日
  1. JavaScript で canvas を使用して画像を Base64 文字列に変換する
  2. JavaScript で FileReader を使って画像を Base64 文字列に変換する
JavaScript を使用して画像を Base64 文字列に変換する

JavaScript には、画像の URL または画像をローカル PC から base64 文字列に変換する規則があります。この文字列には、さまざまな記号や文字を含めることができます。

canvas 要素の作成、その要素への画像の読み込み、および toDataURL を使用した文字列表現の表示について説明します。また、file reader オプションを使用して、base64 文字列表現を取得します。

JavaScript で canvas を使用して画像を Base64 文字列に変換する

この場合、canvas 要素を作成し、そのディメンションを定義します。これは、文字列表現を格納する dataURL です。

オンラインソースからランダムな画像を追加し、セキュリティの問題を回避するために、object.crossOrigin = 'Anonymous' を指定します。最後に、コールバック関数は dataURLtoDataURL 関数に移動して、対応する画像の base64 文字列をプレビューするようにウィンドウに警告します。

コードスニペット:

<!DOCTYPE html>
<html lang="en">
  
<head>
  <title>Test</title>
  <style>
    img{
      height: 200px;
    }
  </style>
</head>
<body>
 <img src="https://images.unsplash.com/photo-1606115915090-be18fea23ec7?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=465&q=80" id="myImg">
  <script>
  function toDataURL(src, callback){
    var image = new Image();
    image.crossOrigin = 'Anonymous';
 
    image.onload = function(){
      var canvas = document.createElement('canvas');
      var context = canvas.getContext('2d');
      canvas.height = this.naturalHeight;
      canvas.width = this.naturalWidth;
      context.drawImage(this, 0, 0);
      var dataURL = canvas.toDataURL('image/jpeg');
      callback(dataURL);
    };
    image.src = src;
  }
      toDataURL('https://images.unsplash.com/photo-1606115915090-be18fea23ec7?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=465&q=80', function(dataURL){
        alert(dataURL);      
    })
  </script>
</body>
  
</html>

出力:

JavaScript で canvas を使用して画像を base64 文字列に変換する

JavaScript で FileReader を使って画像を Base64 文字列に変換する

ファイル読み取り規則では、新しいオブジェクトを動的に初期化します。オブジェクトは onload メソッドをトリガーし、base64 文字列を出力します。input 要素は、アップロードによってローカルコンピュータから画像を取得しています。

コードスニペット:

<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
    <input type="file" name="" id="fileId" 
        onchange="Uploaded()">
    <br><br>
    <button onclick="display()">
        Display String
    </button>
</body>
</html>
var base64String = '';
function Uploaded() {
  var file = document.querySelector('input[type=file]')['files'][0];
  var reader = new FileReader();
  reader.onload = function() {
    base64String = reader.result.replace('data:', '').replace(/^.+,/, '');
    imageBase64Stringsep = base64String;
  } reader.readAsDataURL(file);
}
function display() {
  console.log('Base64String about to be printed');
  alert(base64String);
}

出力:

FileReader を使用して、JavaScript を使用して画像を base64 文字列に変換します

Anika Tabassum Era avatar Anika Tabassum Era avatar

Era is an observer who loves cracking the ambiguos barriers. An AI enthusiast to help others with the drive and develop a stronger community.

LinkedIn Facebook

関連記事 - JavaScript Image