হালনাগাদ
আপনার এই পিএইচপি-তে কীভাবে আপনার সমস্যা সমাধান করা যায় আমি এই আকর্ষণীয় লিঙ্কটি পেয়েছি । আমার মনে হয় আপনি প্রতিস্থাপন করতে ভুলে গেছি space
দ্বারা +
হিসাবে লিঙ্কে দেখানো হয়েছে।
আমি এই চেনাশোনাটি http://images-mediawiki-sites.thefullwiki.org/04/1/7/5/6204600836255205.png থেকে নমুনা হিসাবে দেখেছি যা দেখে মনে হচ্ছে:
পরবর্তী আমি এটি http://www.greywyvern.com/code/php/binary2base64 এর মাধ্যমে রেখেছি যা আমাকে ফিরিয়ে দিয়েছে:
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAAAAACPAi4CAAAAB3RJTUUH1QEHDxEhOnxCRgAAAAlwSFlzAAAK8AAACvABQqw0mAAAAXBJREFUeNrtV0FywzAIxJ3+K/pZyctKXqamji0htEik9qEHc3JkWC2LRPCS6Zh9HIy/AP4FwKf75iHEr6eU6Mt1WzIOFjFL7IFkYBx3zWBVkkeXAUCXwl1tvz2qdBLfJrzK7ixNUmVdTIAB8PMtxHgAsFNNkoExRKA+HocriOQAiC+1kShhACwSRGAEwPP96zYIoE8Pmph9qEWWKcCWRAfA/mkfJ0F6dSoA8KW3CRhn3ZHcW2is9VOsAgoqHblncAsyaCgcbqpUZQnWoGTcp/AnuwCoOUjhIvCvN59UBeoPZ/AYyLm3cWVAjxhpqREVaP0974iVwH51d4AVNaSC8TRNNYDQEFdlzDW9ob10YlvGQm0mQ+elSpcCCBtDgQD7cDFojdx7NIeHJkqi96cOGNkfZOroZsHtlPYoR7TOp3Vmfa5+49uoSSRyjfvc0A1kLx4KC6sNSeDieD1AWhrJLe0y+uy7b9GjP83l+m68AJ72AwSRPN5g7uwUAAAAAElFTkSuQmCC
এই base64
কোডটি আমি আমার কোড থেকে পড়েছি সেভ করে ।
var fs = require('fs'),
data = fs.readFileSync('base64', 'utf8'),
base64Data,
binaryData;
base64Data = data.replace(/^data:image\/png;base64,/, "");
base64Data += base64Data.replace('+', ' ');
binaryData = new Buffer(base64Data, 'base64').toString('binary');
fs.writeFile("out.png", binaryData, "binary", function (err) {
console.log(err); // writes out file without error, but it's not a valid image
});
আমি একটি বৃত্ত ফিরে পেয়েছি, তবে মজার বিষয় হ'ল ফাইলসাইজ বদলে গেছে:) ...
শেষ
আপনি যখন ব্যাক ইমেজটি পড়বেন তখন আমার মনে হয় আপনার শিরোনাম সেটআপ করা দরকার
উদাহরণস্বরূপ পিএইচপি পৃষ্ঠা থেকে ইমেজপিএনজি নিন :
<?php
$im = imagecreatefrompng("test.png");
header('Content-Type: image/png');
imagepng($im);
imagedestroy($im);
?>
আমি মনে করি দ্বিতীয় লাইনটি header('Content-Type: image/png');
গুরুত্বপূর্ণ, অন্যথায় আপনার চিত্রটি ব্রাউজারে প্রদর্শিত হবে না, তবে ব্রাউজারে কেবল একটি গুচ্ছ বাইনারি তথ্য প্রদর্শিত হবে।
ইন এক্সপ্রেস আপনি কেবল শুধু নিচের ভালো কিছু ব্যবহার করেন। আমি আপনার গ্রাভাটারটি প্রদর্শন করতে যাচ্ছি যা http://www.gravatar.com/avatar/cabf735ce7b8b4471ef46ea54f71832d?s=32&d=identicon&r=PG এ অবস্থিত
এবং আপনি যখন থাকবেন তখন একটি জেপিগ ফাইল curl --head http://www.gravatar.com/avatar/cabf735ce7b8b4471ef46ea54f71832d?s=32&d=identicon&r=PG
। আমি কেবল শিরোনামদের অনুরোধ করছি কারণ অন্যথায় কার্ল কনসোল করতে বাইনারি স্টাফগুলির একটি গুচ্ছ প্রদর্শন করবে (গুগল ক্রোম সাথে সাথে ডাউনলোড করতে যায়):
curl --head "http://www.gravatar.com/avatar/cabf735ce7b8b4471ef46ea54f71832d?s=32&d=identicon&r=PG"
HTTP/1.1 200 OK
Server: nginx
Date: Wed, 03 Aug 2011 12:11:25 GMT
Content-Type: image/jpeg
Connection: keep-alive
Last-Modified: Mon, 04 Oct 2010 11:54:22 GMT
Content-Disposition: inline; filename="cabf735ce7b8b4471ef46ea54f71832d.jpeg"
Access-Control-Allow-Origin: *
Content-Length: 1258
X-Varnish: 2356636561 2352219240
Via: 1.1 varnish
Expires: Wed, 03 Aug 2011 12:16:25 GMT
Cache-Control: max-age=300
Source-Age: 1482
$ mkdir -p ~/tmp/6922728
$ cd ~/tmp/6922728/
$ touch app.js
app.js
var app = require('express').createServer();
app.get('/', function (req, res) {
res.contentType('image/jpeg');
res.sendfile('cabf735ce7b8b4471ef46ea54f71832d?s=32&d=identicon&r=PG');
});
app.get('/binary', function (req, res) {
res.sendfile('cabf735ce7b8b4471ef46ea54f71832d?s=32&d=identicon&r=PG');
});
app.listen(3000);
$ wget "http://www.gravatar.com/avatar/cabf735ce7b8b4471ef46ea54f71832d?s=32&d=identicon&r=PG"
$ node app.js