क्या आप कृपया मुझे मार्गदर्शन कर सकते हैं कि मैं URL से बेस 64 एनकोडिंग में एक छवि कैसे बदल सकता हूं?
क्या आप कृपया मुझे मार्गदर्शन कर सकते हैं कि मैं URL से बेस 64 एनकोडिंग में एक छवि कैसे बदल सकता हूं?
जवाबों:
मुझे लगता है कि यह होना चाहिए:
$path = 'myfolder/myimage.png';
$type = pathinfo($path, PATHINFO_EXTENSION);
$data = file_get_contents($path);
$base64 = 'data:image/' . $type . ';base64,' . base64_encode($data);
आसान:
$imagedata = file_get_contents("/path/to/image.jpg");
// alternatively specify an URL, if PHP settings allow
$base64 = base64_encode($imagedata);
ध्यान रखें कि इससे डेटा 33% बढ़ जाएगा, और आपको उन फ़ाइलों के साथ समस्या होगी, जिनका आकार आपके आकार से अधिक है memory_limit
।
बेस 64 एनकोड फॉर्मेट में इमेज को दर्शाने के लिए इस तरह का भी उपयोग करें ... PHP फ़ंक्शन file_get_content
और फ़ंक्शन का उपयोग करने के लिए अगला ढूंढेंbase64_encode
और के रूप में तैयार करने के लिए परिणाम मिलता है data:" . file_mime_type . " base64_encoded string
। इसका उपयोग img src विशेषता में करें। निम्नलिखित कोड देखें मैं आपके लिए मदद कर सकता हूं।
// A few settings
$img_file = 'raju.jpg';
// Read image path, convert to base64 encoding
$imgData = base64_encode(file_get_contents($img_file));
// Format the image SRC: data:{mime};base64,{data};
$src = 'data: '.mime_content_type($img_file).';base64,'.$imgData;
// Echo out a sample image
echo '<img src="'.$src.'">';
<img src="data:image/png;base64,<?php echo base64_encode(file_get_contents("IMAGE URL HERE")) ?>">
मैं इस संसाधन का उपयोग करने की कोशिश कर रहा था, लेकिन एक त्रुटि मिलती रही, मुझे लगा कि ऊपर दिया गया कोड पूरी तरह से काम कर रहा है।
बस अपनी छवि के URL के साथ IMAGE URL HERE को प्रतिस्थापित करें - http://www.website.com/image.jpg
बहुत सरल और आमतौर पर इस्तेमाल किया जा सकता है:
function getDataURI($imagePath) {
$finfo = new finfo(FILEINFO_MIME_TYPE);
$type = $finfo->file($imagePath);
return 'data:'.$type.';base64,'.base64_encode(file_get_contents($imagePath));
}
//Use the above function like below:
echo '<img src="'.getDataURI('./images/my-file.svg').'" alt="">';
echo '<img src="'.getDataURI('./images/my-file.png').'" alt="">';
नोट: फ़ाइल का माइम-प्रकार अपने आप जुड़ जाएगा (इस PHP दस्तावेज़ से मदद लेना )।
यहाँ अपलोड के लिए कोड को एनकोड करना है और इसे MySQL में सेव करना है
if (!isset($_GET["getfile"])) {
if ($_FILES["file"]["error"] > 0) {
echo "Error: " . $_FILES["file"]["error"] . "<br>";
} else {
move_uploaded_file($_FILES["file"]["tmp_name"], $_FILES["file"]["name"]);
$bin_string = file_get_contents($_FILES["file"]["name"]);
$hex_string = base64_encode($bin_string);
$mysqli = mysqli_init();
if (!$mysqli->real_connect('localhost', 'root', '', 'arihant')) {
die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error());
}
$mysqli->query("INSERT INTO upload(image) VALUES ('" . $hex_string . "')");
}
}
छवि दिखाने के लिए इसका उपयोग करें
echo "<img src='data:image/jpeg;base64, $image' width=300>";
यहाँ एक उदाहरण है एक कॉल कॉल का उपयोग .. यह file_get_contents () फ़ंक्शन से बेहतर है । बेशक, base64_encode () का उपयोग करें
$url = "http://example.com";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($ch);
curl_close($ch);
?>
<img src="data:image/png;base64,<?php echo base64_encode($output);?>">
curl
file_get_contents
जब तक आपको कॉल पूर्व में अतिरिक्त डेटा जोड़ने की आवश्यकता नहीं है , तब तक "बेहतर" नहीं है । प्रमाणीकरण। इसके अलावा, file_get_contents
जब संभव हो तो एक स्थानीय फ़ाइल की सामग्री प्राप्त करने के लिए कमबैक करना है, इस प्रकार एक बेकार नेटवर्क कॉल नहीं करना है।
आप इसे कर्ल के माध्यम से भी कर सकते हैं, बस आपको एक छवि फ़ाइल के लिए एक पथ की आवश्यकता है और इसे नीचे दिए गए फ़ंक्शन में पास करें ..
public static function getImageDataFromUrl($url)
{
$urlParts = pathinfo($url);
$extension = $urlParts['extension'];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HEADER, 0);
$response = curl_exec($ch);
curl_close($ch);
$base64 = 'data:image/' . $extension . ';base64,' . base64_encode($response);
return $base64;
}