Text থেকে Image – পিএইচপি প্রজেক্ট

কিভাবে Text থেকে Image করা যায় আজ তাই আলোচনা করব। আমার নিজের প্রয়োজনে দিন দুয়েক আগে কাজটা করলাম আর এখন তা আপনাদের সামনে তুলে ধরবার চেষ্ঠা করছি ।

আমার এলাকার জন্য একটা ওয়েব ডিরেকটরি করছি আর সেখানে Email ID ও রাখতে হচ্ছে । আর আমরা কম বেশি সবায় জানি কিভাবে Spamming এর জন্য Email ID collect করা হয়। আর তাই Email ID গুলো কে Image আকারে প্রকাশ করার জন্য কাজটি আমাকে করতে হয়েছে । তো এবার আসা যাক মূল কাজে . . .

Demo: http://shariarbd.com/project/text2image/

প্রথমে Server এ একটা php ফাইল তৈরি করুন আর নাম দিন image.php (চাইলে অন্য নাম ও দিতে পারেন)। এবার এতে নিচের কোড গুল কপি করুন ।

<?php
if(!isset($_GET['img']))
{
exit();
}

header ("Content-type: image/png");
$string = $_GET['img'];                                            
$font   = 4;
$width  = ImageFontWidth($font) * strlen($string);
$height = ImageFontHeight($font)+2;
$im = @imagecreate ($width,$height);
$background_color = imagecolorallocate ($im, 255, 255, 255); //white background
$text_color = imagecolorallocate ($im, 0, 0,0);//black text
imagestring ($im, $font, 0, 0,  $string, $text_color);
imagepng ($im);
?>

উপরের কোডগুলো Get method এ text গ্রহন করে সেই text টির image তৈরি করবে । এর পর আর একটি ফাইলএ নিচের কোড গুলো রেখে ব্রাউজার এ ফাইল টি কল করুন। (আগের ফাইলটি এবং এই ফাইলটি যেন একই ডিরেকটরিতে থাকে। আর ভিন্য ডিরেকটরিতে থাকলে পাথ ঠিক করে নিন ।)

<?php $txt="emailID@example.com"; ?>
<img src="image.php?img=<?php echo $txt; ?>" border="0">

এখানে একটি কিন্তু থেকেই গেছে । আর তা হল – <img src=”image.php?img=<?php echo $txt; ?>” border=”0″> এই জায়গায় ঠিকই Email ID টি Text আকারে প্রকাশিত হচ্ছে যদিও দেখাযাবে Image (Source code view করলে text Email ID দেখা যাবে !) । আমরা জানি যে সাধারনত @ কে খুজলে email ID পাওয়া সহজ। আর তাই এখন এই @ কেই সরিয়ে ফেলবো । আর সে কাজটি করার জন্য একটা ফাংশন তৈরি করে নেব। আর সেটি হবে নিচের মতো ।

<?php
function convATandDot($currenttext){
$old = array('@','.');
$new = array('__shariar__','__dot__');
$convTEXT= str_replace($old, $new, $currenttext);
return $convTEXT;
}
?>

এই ফাংশনটি @ এবং . কে __shariar__ এবং __dot__ এ রুপান্তরিত করবে। ফলে emailID@example.com পরিনত হবে emailID__shariar__example__dot__com

 

আমাদের আরও একটি ফাংশন লাগবে যা convert করা text টি আগের অনস্থায় ফিরিয়ে নিতে পারে । আর তাই আগের ফাংশনটিকে একটু উল্টিয়ে নিতে হবে । আর তা নিচের মতো হবে ।

<?php
function convATandDot($currenttext){
$old = array('__shariar__','__dot__');
$new = array('@','.');
$convTEXT= str_replace($old, $new, $currenttext);
return $convTEXT;
}
?>

এবার দেখা যাক পুরো কোড কেমন হয় ।

প্রথমের ফাইল টি (image.php) এবার নিচের মতো করুন।

<?php
if(!isset($_GET['img']))
{
exit();
}

header ("Content-type: image/png");
$string = $_GET['img'];  
$string = convATandDot($string);                                          
$font   = 4;
$width  = ImageFontWidth($font) * strlen($string);
$height = ImageFontHeight($font)+2;
$im = @imagecreate ($width,$height);
$background_color = imagecolorallocate ($im, 255, 255, 255); //white background
$text_color = imagecolorallocate ($im, 0, 0,0);//black text
imagestring ($im, $font, 0, 0,  $string, $text_color);
imagepng ($im);

function convATandDot($currenttext){
$old = array('__shariar__','__dot__');
$new = array('@','.');
$convTEXT= str_replace($old, $new, $currenttext);
return $convTEXT;
}
?>

আর ২য় ফাইল টিতে বসান নিচের কোড।

<?php $txt="emailID@example.com"; ?>
<img src="image.php?img=<?php echo convATandDot($txt); ?>" border="0">
<?php
function convATandDot($currenttext){
$old = array('@','.');
$new = array('__shariar__','__dot__');
$convTEXT= str_replace($old, $new, $currenttext);
return $convTEXT;
}
?>

1 Response

  1. অনেক কিছু শিখলাম

Leave a Reply

Your email address will not be published. Required fields are marked *