在 PHP 中將影象編碼為 Base64
-
在 PHP 中使用
file_get_contents、pathinfo和base64_encode將影象編碼為 Base64 -
在 PHP 中使用
file_get_contents和base64_encode將影象編碼為 Base64 -
在 PHP 中使用
base64_encode和mime_content_type將影象編碼為 Base64 - 使用 PHP 中的自定義函式將影象編碼為 Base64
藉助 PHP 中的多個內建函式,有很多方法可以將影象編碼為 base64 格式。
這些函式包括:
在 PHP 中使用 file_get_contents、pathinfo 和 base64_encode 將影象編碼為 Base64
影象應該有一個儲存在變數中的定義路徑,以使用 file_get_contents、pathinfo 和 base64_encode 將影象編碼為 base64。
使用 pathinfo 功能讀取資訊。然後將結果資訊傳遞給 file_get_contents 函式。
file_get_contents 的工作是將影象檔案讀入字串。我們可以將字串傳遞給 base64_encode 函式。
要顯示 base64 編碼的影象,連線字串 data:image/、來自 pathinfo 的資訊、字串 ;base64 和 base64 編碼的字串。
<?php
// Define a path for the image
$image_path = 'xps-unsplash.jpg';
// Check the image type
$image_type = pathinfo($image_path, PATHINFO_EXTENSION);
// Read the image into a string
$data = file_get_contents($image_path);
// Encode the image
$base64_encode = 'data:image:/' . $image_type . ';base64,' . base64_encode($data);
// Return the first 50 characters of the
// base64 encoded string
echo substr($base64_encode, 0, 50);
?>
輸出:
data:image:/jpg;base64,/9j/4AAQSkZJRgABAQEASABIAAD
在 PHP 中使用 file_get_contents 和 base64_encode 將影象編碼為 Base64
要將影象轉換為 base64,請將影象的路徑直接傳遞給 file_get_contents 函式。
file_get_contents 函式將返回一個字串。如果你將此字串作為引數提供給 base64_encode 函式,將會有所幫助。
<?php
// Define a path for the image
$data = file_get_contents('xps-unsplash.jpg');
// Encode the image
$base64_encode = base64_encode($data);
// Return the first 50 characters of the
// base64 encoded string
echo substr($base64_encode, 0, 50);
?>
輸出:
/9j/4AAQSkZJRgABAQEASABIAAD/4gIcSUNDX1BST0ZJTEUAAQ
在 PHP 中使用 base64_encode 和 mime_content_type 將影象編碼為 Base64
使用 file_get_contents 函式讀取影象路徑。然後將生成的字串轉換為 base64 編碼。
你可以在將影象源傳遞給 HTML <img> 標記中的 src 標記之前對其進行格式化。
為此,你需要將影象格式化為 data:{mime};base64,{data}。你可以從格式中推斷出你需要影象 mime 型別。
你可以使用 mime_content_type 函式獲取影象 mime 型別。最後,你將格式作為 <img> 標記的 src 屬性的值傳遞。
<?php
// Define a path for the image
$image_path = 'xps-unsplash.jpg';
// Read the image path and convert it to
// base64
$base64_encode = base64_encode(file_get_contents($image_path));
// Prepare the image for use in an img
// src tag
$image_source = 'data: ' . mime_content_type($image_path) . ';base64,' . $base64_encode;
// Display the image in the img src tag
echo '<img src="' . $image_source . '">';
?>
輸出:

使用 PHP 中的自定義函式將影象編碼為 Base64
在此函式的定義中,你可以使用諸如 file_get_contents、base64_encode 和 pathinfo 之類的方法來處理影象編碼。
你可以使用 file_put_contents 實現快取功能以獲得更好的效能。
<?php
function encode_html_image (
$image_file,
$alternate_text = NULL,
$image_cache,
$image_extension = NULL
) {
// check if the image is not a file
if (!is_file($image_file)) {
return false;
}
// Save the image as base64 extension for
// use as a cache
$image_with_base64_extension = "{$image_file}.base64";
if ($image_cache && is_file($image_with_base64_extension)) {
// Use the cache image
$base64_encoded_image = file_get_contents($image_with_base64_extension);
} else {
// Create a new base64 encoded image
$image_binary_data = file_get_contents($image_file);
$base64_encoded_image = base64_encode($image_binary_data);
if ($image_cache) {
file_put_contents($image_with_base64_extension, $base64_encoded_image);
}
}
$image_extension = pathinfo($image_file, PATHINFO_EXTENSION);
return "<img alt='{$alternate_text}' src='data:image/{$image_extension};base64,{$base64_encoded_image}' />";
}
$sample_image = 'xps-unsplash.jpg';
$encoded_image = encode_html_image($sample_image, 'XPS by DELL', true);
echo $encoded_image;
?>
輸出:

Habdul Hazeez is a technical writer with amazing research skills. He can connect the dots, and make sense of data that are scattered across different media.
LinkedIn