PDA

View Full Version : سوال: imageftbbox چکار می کند؟



Man-Haman-Hastam
دوشنبه 17 بهمن 1390, 15:36 عصر
سلام
لطفا برا توابع زیر مثالی بزنید تا با روش کاربردش آشنا بشیم؟:متفکر:


imageftbbox ( float $size, float $angle, string $font_file, string $text [, array $extrainfo] )



imagelayereffect ( resource $image, int $effect )

با تشکر

MMSHFE
دوشنبه 17 بهمن 1390, 16:44 عصر
تابع اول، اندازه فونت، زاویه چرخش، نام (مسیر) فونت و یک آرایه اختیاری تک عنصری میگیره که عنصر مربوطه، باید دارای اندیس به نام linespacing و یک مقدار اعشاری باشه که مشخص کننده فاصله بین خطوط متن هست و خروجی این تابع، ابعاد کادر دربرگیرنده متن بصورت یک آرایه با 8 عنصر هست که به ترتیب عبارتند از:
1- مختصات X نقطه پایین و سمت چپ
2- مختصات Y نقطه پایین و سمت چپ
3- مختصات X نقطه پایین و سمت راست
4- مختصات Y نقطه پایین و سمت راست
5- مختصات X نقطه بالا و سمت راست
6- متخصات Y نقطه بالا و سمت راست
7- مختصات X نقطه بالا و سمت چپ
8- مختصات Y نقطه بالا و سمت چپ
مثال:


$bounds = imageftbbox(1.0, -5.0, 'tahoma.ttf'm 'Hello World!', array('linespacing' => 1.5));

منبع (http://ir.php.net/manual/en/function.imageftbbox.php)
تابع دوم هم نوع جلوه ترکیب تصاویری که روی هم قرار میگیرن رو مشخص میکنه که پارامتر اول اون، تصویر مربوطه و پارامتر دوم، جلوه مربوطه هست که میتونه یکی از مقادیر زیر باشه:
IMG_EFFECT_REPLACE : تصویر جدید جایگزین تصویر قبلی میشه (اگه تصویر جدید پس زمینه شفاف داشته باشه، نقاط زیر پس زمینه، پاک میشه)
IMG_EFFECT_ALPHABLEND : نقاط تصویر جدید، جایگزین نقاط زیر خودش از تصویر قبلی میشه (اگه تصویر جدید پس زمینه شفاف داشته باشه، فقط نقاطی که شفاف نیست جایگزین میشه)
IMG_EFFECT_NORMAL : مشابه قبلی
IMG_EFFECT_OVERLAY : نقاط سیاه تصویر زیر، سیاه باقی میمونن، نقاط سفید هم همینطور. اما نقاط خاکستری، با رنگ تصویر جدید جایگزین میشن و هرچقدر نقاط خاکستری روشنتر باشن، رنگ روشنتری بدست میاد.
مثال:


$im = imagecreatetruecolor(100, 100);
imagefilledrectangle($im, 0, 0, 100, 100, imagecolorallocate($im, 220, 220, 220));
imagelayereffect($im, IMG_EFFECT_OVERLAY);
imagefilledellipse($im, 50, 50, 40, 40, imagecolorallocate($im, 100, 255, 100));
imagefilledellipse($im, 50, 50, 50, 80, imagecolorallocate($im, 100, 100, 255));
imagefilledellipse($im, 50, 50, 80, 50, imagecolorallocate($im, 255, 100, 100));
header('Content-type: image/png');
imagepng($im);
imagedestroy($im);

خروجی:
http://ir.php.net/manual/en/images/21009b70229598c6a80eef8b45bf282b-imagelayereffect.png
منبع (http://ir.php.net/manual/en/function.imagelayereffect.php)

Man-Haman-Hastam
سه شنبه 18 بهمن 1390, 11:02 صبح
لطفا این تابع رو هم توضیح بدین؟


bool imagesetstyle ( resource $image, array $style )

متشکرم

MMSHFE
سه شنبه 18 بهمن 1390, 16:40 عصر
این تابع قالب ترسیم خطوط رو در تمامی دستورات رسم خط مثل imageline و imagepolygon در زمانی که از ثابت خاصی بنام IMG_COLOR_STYLED بجای رنگ ترسیم استفاده بشه، یا دستورات رسم تصویر در زمانی که از رنگ IMG_COLOR_STYLEDBRUSHED برای ترسیم اونها استفاده شده باشه، تعیین میکنه. برای مثال: دستورات زیر رو درنظر بگیرین:


header("Content-type: image/jpeg");
$im = imagecreatefromjpeg('logo.jpg');
$r = imagecolorallocate($im, 255, 0, 0);
$g = imagecolorallocate($im, 0, 255, 0);
$b = imagecolorallocate($im, 0, 0, 255);
$t = IMG_COLOR_TRANSPARENT;

/* Draw a dashed line, 3 red pixels, 3 green pixels, 3 blue pixels, 3 transparent pixels */
$style = array($r, $r, $r, $g, $g, $g, $b, $b, $b, $t, $t, $t);
imagesetstyle($im, $style);
imageline($im, 0, 0, imagesx($im), imagesy($im), IMG_COLOR_STYLED);

imagejpeg($im);
imagedestroy($im);

همونطور که میبینید، دستورات فوق، فایل logo.jpg رو بازکرده و یک خط از گوشه بالا و سمت چپ به گوشه پایین و سمت راست اون رسم میکنن. نکته قابل توجه اینه که در خط ترسیم شده، سه پیکسل به رنگ قرمز، سه پیکسل به رنگ سبز، سه پیکسل به رنگ آبی و سه پیکسل شفاف هست (تصویر زیرش دیده میشه).
همونطور که میبینید، از ثابت IMG_COLOR_TRANSPARENT برای ایجاد رنگ شفاف استفاده شده.
منبع (http://ir.php.net/manual/en/function.imagesetstyle.php)
موفق باشید.

Man-Haman-Hastam
چهارشنبه 19 بهمن 1390, 16:12 عصر
خیلی ممنون از جوابایی که گفتین

یه سوال دیگه هم دارم لطفا بگید:

کار این تابع چی هستش؟

string image_type_to_mime_type ( int $imagetype )

متشکرم

MMSHFE
چهارشنبه 19 بهمن 1390, 16:49 عصر
این تابع، یکی از ثابتهای زیر رو دریافت میکنه و نوع MIME معادل اون رو که جلوش نوشته شده، بر میگردونه. بیشتر برای وقتی کاربرد داره که نمیدونید نوع MIME یک پسوند خاص فایل چی هست:


IMAGETYPE_GIF image/gif
IMAGETYPE_JPEG image/jpeg
IMAGETYPE_PNG image/png
IMAGETYPE_SWF application/x-shockwave-flash
IMAGETYPE_PSD image/psd
IMAGETYPE_BMP image/bmp
IMAGETYPE_TIFF_II (intel byte order) image/tiff
IMAGETYPE_TIFF_MM (motorola byte order) image/tiff
IMAGETYPE_JPC application/octet-stream
IMAGETYPE_JP2 image/jp2
IMAGETYPE_JPX application/octet-stream
IMAGETYPE_JB2 application/octet-stream
IMAGETYPE_SWC application/x-shockwave-flash
IMAGETYPE_IFF image/iff
IMAGETYPE_WBMP image/vnd.wap.wbmp
IMAGETYPE_XBM image/xbm
IMAGETYPE_ICO image/vnd.microsoft.icon

مثال:

header('Content-type: '.image_type_to_mime_type(IMAGETYPE_PNG));
منبع (http://ir.php.net/manual/en/function.image-type-to-mime-type.php)
موفق باشید.