在 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