عکس بند انگشتی با php


با این کلاس ساده می تونین از رو عکس بزرگتر یه عکس کوچک ایجاد کنید .

با این کار جایی هایی که لزمی به استفاده از عکس اصلی نیست از عکس بند انگشتی استفاده کنید .

این کار چندتا مزیت داره ... یکی بالا بردن سرعت لود سایتتون و دومی هم بحث امنیتی اون هست .... وقتی از روی یک عکس یک کپی میزنین در صورتی که اون عکس به جای عکس یک شل باشه از اپلود شل جلوگیری می کنید

 

شل چیه و چجوری از اپلودش جلوگیری کنیم رو توی چندتا پست به صورت مفصل بحث خواهم کرد .

class Tools
{
    static function FileType($name)
    {
        $type=explode(".", strtolower($name));
        return strtolower(end($type));
    }

    static function FileThumbs($name, $DirFrame, $DirTo, $Ourheight = '128', $Ourwith = '128')
    {
        $type = self::FileType($name);
        if ($type == "png") {
            $img = imagecreatefrompng($DirFrame . $name);
            $width = imagesx($img);
            $height = imagesy($img);
            $new_width = $Ourwith;//پهنا
            $new_height = $Ourheight;//ارتفاع
            $tmp_img = imagecreatetruecolor($new_width, $new_height);
            imagecopyresized($tmp_img, $img, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
            imagepng($tmp_img, $DirTo . $name);
        }
        /// jpg img //

        if ($type == "jpg") {
            $img = imagecreatefromjpeg($DirFrame . $name);
            $width = imagesx($img);
            $height = imagesy($img);
            $new_width = $Ourwith;//پهنا
            $new_height = $Ourheight;//ارتفاع
            $tmp_img = imagecreatetruecolor($new_width, $new_height);
            imagecopyresized($tmp_img, $img, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
            imagejpeg($tmp_img, $DirTo . $name);
        }
}

 

نحوه ی استفاده

        Tools::FileThumbs($_FILES['img']['name'],"file/article/","file/article/tmp/");

فک کنم توضیح خاصی نخاد ... تابع اول میاد نوع تایپ رو از روی پسوند فایل بدست میاره و توی تابع دوم بسته به اینکه عکستون png باشه یا jpg  میاد از رو عکس یه کپی میزنه

دوتا متغییر اخری هم اندازه ی عکس رو مشخص می کنن که من به صورت پیش فرض روی 128*128 قرار دادم

۱۳۴۸/۱۰/۱۱ || in category : پی اچ پی php