PDA

View Full Version : سوال: افزودن متن به تصویر و ذخیره سازی تصویر در PHP



mehcosoft
یک شنبه 31 شهریور 1392, 21:40 عصر
سلام دوستان
من به شدت به یک مورد نیاز دارم که اگر امکان داره هرکس بلده آموزش کاملشو برام بذاره که چکار باید بکنم.
من میخوام کارتی برای ثبت نام کاربرانم صادر کنم و میخوام اون کارت بالافاصله پس از ثبت نام نشان داده بشه و فایلش ذخیره بشه (بصورت JPG)
کاری که میگم دقیقا توی سایت ایران اهدا انجام میشه و کارت اهدای عضو موقت بعد از ثبت نام صادر میشه.
حالا میخوام بدونم چجوری توی PHP من تصویر خام کارت رو دریافت کنم و روی اون نام و نام خانوادگی و شماره اشتراک فرد رو از دیتابیس بخونم و در محل های مشخص وارد کنم و اون رو بصورت یک فایل JPG در پوشه ای از سرور ذخیره کنم
ممنون میشم زودی کمکم کنین
یه آموزش کامل میخوام بی زحمت بدون نقص

wallfa
یک شنبه 31 شهریور 1392, 23:53 عصر
والا اول باید جی دی یاد بگیری یک کتابخونه برای کار کردن روی تصاویر در پی اچ پی ، اون که یاد بگیری بقیه اش حله ! ولی اگر دمو می خواهی ، من ندارم باید صبر کنی یکی از دوستان بهتون بدهند .

hasanak852
دوشنبه 01 مهر 1392, 01:23 صبح
http://forum.majidonline.com/threads/79168
http://aftab.cc/tutorial/389

mehcosoft
دوشنبه 01 مهر 1392, 14:03 عصر
دوستان من تا حدودی این کاری که گفتمو انجام دادم
کدو میذارم ببینید مشکل چیه و چکار میتونم بکنم


<?php

error_reporting("E_ALL");

header("Content-Type: image/png");

include("fagd.php");

$path = "card.png";

$text = "کلیک";
$text2 = "پرداز";
$text3 = "کلیک";

$image = imagecreatefrompng($path);

$black = imagecolorallocate($image, 0, 0, 0);

$text = fagd($text, 'fa', 'nastaligh');

$font = '../../fonts/BTitr.ttf';

imagettftext($image, 35, 0, 800, 250, $black, $font, $text);
imagettftext($image, 35, 0, 777, 360, $black, $font, $text2);
imagettftext($image, 35, 0, 777, 470, $black, $font, $text3);

imagepng($image);

imagedestroy($image);

?>

مشکلاتی که این کد داره
یک: تصویری که من دارم عکس یک کارت تحفیف هستش که سه تا فیلد داره :
یک: نام
دو: نام خانوادگی
سه: کد اشتراک
حالا کد بالا اگر یدونه از متنهارو فقط بذارم یعنی دوتای دیگرو پاک کنم درست مینویسه ولی اگر مثل بالا سه تاش باشه فقط اولی درسته و بقیه از چپ به راست جدا جدا نوشته میشه (مثلا کلیک نوشته میشه ک ی ل ک )
مشکل دوم اینه که میخوام این عکس هم نمایش داده بشه و هم در پوشه ای ذخیره بشه که این کد بالا فقط نمایش میده عکسو
کمکم کنییییییییییییییییییییییی یییییید:افسرده:

mehcosoft
سه شنبه 02 مهر 1392, 13:53 عصر
بچه ها کمک کنید توروخدا

hasanak852
سه شنبه 02 مهر 1392, 15:50 عصر
باید همه تکست ها رو توی تابع fagd بذاری بعد استفاده کنی، شما فقط اولین تکست رو گذاشتی دوتای دیگه رو نذاشتی
برای ذخیره لزومی نداره که عکس ها رو ذخیره کنی، فقط سه تا تکست رو توی دیتابیس داشته باش، هروقت نیازی بود توی همین برنامه بذارشون و عکس رو میاره، ولی اگه حتما لازمه دخیره بشه به تابع file_get_contents آدرس مستقیم عکس رو بده (مثلا http://mysite.com/image.php) و بعد توی یه فایل ذخیره کن

MostafaEs3
چهارشنبه 03 مهر 1392, 00:38 صبح
//////////

mehcosoft
چهارشنبه 03 مهر 1392, 18:48 عصر
بچه ها مشکل حل شد
دستتون درد نکنه
فقط الان تنها مشکل من اینه که من تابع file_get_content رو ندیدم جایی
الان تو صفحه ای که این کدارو نوشتم تمام صفحه نشون میده
میخوام بعد از عملیات ثبت نام اگر موفقیت آمیز بود کارت رو در ابعاد کوچیک نشون بده و اطلاعات رو روش چاپ کنه و همزمان با نمایشش اونو توی یک پوشه به اسم مثلا users ذخیره کنه
چون میخوام اون کارتارو بتونم دانلود کنم و پرینت بگیرم براشون

راستی به این تاپیکم برید یه مشکل دیگه دارم کمک کنید:
http://barnamenevis.org/showthread.php?420700-%D9%85%D9%88%D8%AA%D9%88%D8%B1-%D8%AC%D8%B3%D8%AA%D8%AC%D9%88%DB%8C-%D8%AF%D8%A7%D8%AE%D9%84%DB%8C-%D8%B3%D8%A7%DB%8C%D8%AA&p=1882827#post1882827

hasanak852
چهارشنبه 03 مهر 1392, 19:30 عصر
$img=file_get_contents('http://www.site.com/image.php');
$hndl=fopen('image.jpg', 'w');
fwrite($hndl, $img);
fclose($hndl);

Tarragon
چهارشنبه 03 مهر 1392, 19:33 عصر
$img=file_get_contents('http://www.site.com/image.php');
$hndl=fopen('image.jpg', 'w');
fwrite($hndl, $img);
fclose($hndl);

البته اینم بگن می شه اون آخر بجای


imagepng($image_2);

از

ob_start();
imagepng($image_2);
$data = ob_get_clean();
file_put_contents('news.png',$data);
echo $data;

استفاده کرد تا هم ذخیره کنه و هم نمایشش بده

mehcosoft
چهارشنبه 03 مهر 1392, 21:37 عصر
وای مرسی ذخیره میکنه
ولی دستور echo باز هم داره تمام صفحه نشون میده کارتو :ناراحت:

Tarragon
پنج شنبه 04 مهر 1392, 15:10 عصر
نمی دونم واللا
یک سوال هم خودم داشتم می شه کاری کرد این واتر مارکی که می زنه یه حاشیه سفید داشته باشه که تو همه تصاویر معلوم بشه؟

MostafaEs3
پنج شنبه 04 مهر 1392, 16:24 عصر
//////////

Tarragon
شنبه 06 مهر 1392, 06:46 صبح
سلام
اقا مصطفی ،‌می شه یه کاری کرد این سایه یخورده بزرگ تر باشه و زیر متن اصلی قرار بگیره مثل stroke تو فتوشاپ فکر اسمش باشه.