تغییر اندازه gif

semej

Member
سلام
دوستان من دنبال یه کدی میگردم که سایز تصاویر gif رو بدون ازبین رفتن انیمیشنش انجام بده....
البته یه چندتا سایت پیدا کردم ولی تست که می کنم کار نمیکنه یا پر خطاست، اگه میشه تست شده باشه. :)
ممنون میشم :rose:
 
آخرین ویرایش:

Domanjiri

Well-Known Member
سلام

خیلی خوش اومدین:rose:

شما باید imagick رو نصب کنید (بطور پیشفرض روی PHP نصب نیست). بعدش هم که سر راست ئه!:)

نمونه کد ساخت تصویر بند انگشتی GIF با imagick
PHP:
<?php

try
{
    /*** Read in the animated gif ***/
    $animation = new Imagick("animation.gif");

    /*** Loop through the frames ***/
    foreach ($animation as $frame)
    {
        /*** Thumbnail each frame ***/
        $frame->thumbnailImage(100, 100);
    
        /*** Set virtual canvas size to 100x100 ***/
        $frame->setImagePage(100, 100, 0, 0);
    }

    /*** Write image to disk. Notice writeImages instead of writeImage ***/
    $animation->writeImages("animation_thumbnail.gif");

    echo "Images written";
}
catch(Exception $e)
{
    echo $e->getMessage();
}

?>
منبع کد: Thumbnail From Animated GIF

نکته ی باریک تر از مو(!): اگه می خواین روی ویندوز imagick رو به PHP اضافه کنید، باید فایل dll ِش رو پیدا کنید، مثلن از این جا.

یه روش دیگه هم وجود داره که با GD این کار رو انجام بدیم، باید GIF رو بگیرید و فریم به فریم، تصاویرش رو جدا کنید و هر کدوم رو تغییر سایز بدین و بعد دوباره بهم بچسبونید..(!).

موفق باشین
 
آخرین ویرایش:

semej

Member
مشکل

من روش دوم مد نظرم بود.(انیمیشنش هم از بین نره)
روش اول هم که توضیح دادید با خطا:
Fatal error: Class 'Imagick' not found in D:\server\xampp\htdocs\gif\index.php on line 14
مواجه می شم. (خط 14 هم اینه: (animation = new Imagick("animation.gif$ )
لطفا کمی بیشتر راهنمایی کنید
ممنون :rose:
 
آخرین ویرایش:

Domanjiri

Well-Known Member
درود بر شما

روش اول هم مثل روش دوم هست (انیمیشن هم حفظ میشه کاملن)، با این تفاوت که در روش اول بخش عمده ی کار رو اکتنشن imagick انجام میده.
روش اول هم که توضیح دادید با خطا:
Fatal error: Class 'Imagick' not found in D:\server\xampp\htdocs\gif\index.php on line 14
مواجه می شم. (خط 14 هم اینه: (animation = new Imagick("animation.gif$ )
شما الان Imagick رو نصب کردین؟ همونطور که گفتم، بصورت پیشفرض نصب نیست و باید بصورت دستی نصب ِش کنید.

چون روش دوم کمی طولانی هست تمام سعی ِتون رو بکنید تا از روش اول استفاده کنید، مگر اینگه روی سروری باشین که به هیج وجه راضی نشه که Imagick رو نصب کنه.
 
آخرین ویرایش:

semej

Member
راهنمایی

درود بر شما

روش اول هم مثل روش دوم هست (انیمیشن هم حفظ میشه کاملن)، با این تفاوت که در روش اول بخش عمده ی کار رو اکتنشن ImageMagick انجام میده.

شما الان ImageMagick رو نصب کردین؟ همونطور که گفتم، بصورت پیشفرض نصب نیست و باید بصورت دستی نصب ِش کنید.

چون روش دوم کمی طولانی هست تمام سعی ِتون رو بکنید تا از روش اول استفاده کنید، مگر اینگه روی سروری باشین که به هیج وجه راضی نشه که ImageMagick رو نصب کنه.



دوست عزیز نرم افزاری که گفتید رو نصب کردم ولی یک برنامه تحت ویندوز هست .چطور روی php نصب کنم؟ :-?
 

Domanjiri

Well-Known Member
مجددن (به جای مجدداً !) سلام

من خودم تا حالا مراحل نصب Imagick رو کامل انجام ندادم، ولی الان که سرچ کردم، مثل اینکه آموزش زیر در این زمینه مفیده :

installing-imagemagick-on-windows-and-using-with-php-imagick

در ضمن یه توضیحی هم باید بدم: نصب این اکستنشن روی ویندوز این مقدار سخت و اذیت کننده هست، وگرنه روی لینوکس بسیار ساده تر نصب میشه، اگه قصد اینو دارید که کدی که نوشتین( یا میخواین بنویسید! ) رو روی سرور قرار بدین، ابتدا با مسئولین سرور یا هاست خودتون در مورد این افزونه صحبت کنید تا بعدن از این لحاظ دچار مشکل نشین..

موفق باشین
 

Domanjiri

Well-Known Member
سلام

من موفق شدم نصبش کنم، روی WAMP Version 2.1 , Win XP.

مراحل نصب:

1- نسخه باینری Imagemagick رو از این لینک دانلود کنید (که فکر کنم شما کردین) لینک مستقیم ِش میشه این لینک

2- نصبش کنید، ترجیحن (به جای ترجیجاً !) توی یه مسیر ساده مثل c:\imagemagic

3- در مرحله آخر، تیک Add to system path بطور پیشفرض زده شده (اگه نشده بزنید) باقی تیک ها رو می تونید بردارین

4- بعد از اتمام نصب برید به Start->Run -----type---->cmd و دستور convert رو تایپ کنید و اینتر بزنید، باید یه لیست بلند بالا بهتون نشون داده بشه، اگه اینطوره، نصب کامل انجام شده.

5- فایلی که پیوست کردم رو دانلود و در پوشه ی ext داخل پوشه ی اصلی PHP بریزید

6- php.ini رو باز کنید و خط زیر رو بهش اضافه کنید، بعد هم save کنید:
extension=php_imagick.dll

7- ومپ رو ریستارت کنید

8- برین به phpinfo، باید اطلاعات مربوط به imagick رو ببینید، دیدین؟ تبریک میگم:)

موفق باشین
 

پیوست ها

  • php_imagick.zip
    78.4 کیلوبایت · بازدیدها: 4

semej

Member
تشکر

مجددن (به جای مجدداً !) سلام

من خودم تا حالا مراحل نصب Imagick رو کامل انجام ندادم، ولی الان که سرچ کردم، مثل اینکه آموزش زیر در این زمینه مفیده :

installing-imagemagick-on-windows-and-using-with-php-imagick

در ضمن یه توضیحی هم باید بدم: نصب این اکستنشن روی ویندوز این مقدار سخت و اذیت کننده هست، وگرنه روی لینوکس بسیار ساده تر نصب میشه، اگه قصد اینو دارید که کدی که نوشتین( یا میخواین بنویسید! ) رو روی سرور قرار بدین، ابتدا با مسئولین سرور یا هاست خودتون در مورد این افزونه صحبت کنید تا بعدن از این لحاظ دچار مشکل نشین..

موفق باشین

سلام دوست عزیز
واقعا ممنون :clap::clap::clap::clap::clap::oops:
 

semej

Member
از شما تشكر فراوان دارم که منو راهنمایی کردین.
خيلي خيلي ممنون
 

Domanjiri

Well-Known Member
دوست من، یه phpinfo بگیر ببین که Imagick نصب شده یا نه (الان تصویری که پیوست کردم رو ببین، باید همچین چیزی داخل phpinfo باشه)

اگه که هنوز Imagick نصب نشده، اگه بی خیال نصب ِش شدی، که هیچ، وگرنه:

داخل phpinfo اون بالاش، ببین که compiler پی اچ پی VC6 هست یا VC9 ؟

موفق باشی
 

پیوست ها

  • imagick.PNG
    imagick.PNG
    35.2 کیلوبایت · بازدیدها: 3
آخرین ویرایش:

semej

Member
مشکلی عجیب تر

سلام مجدد
compiler من vc6 هست.
تو phpinfo هم Imagemagick نمایش میده. دیگه اون پیغام هم نمایش نمیده.
ولی مشکلی عجیب تر اینکه، کد پی اچ پی که واسم نوشته بودید رو که اجرا می کنم با خطای This webpage is not available.(مرورگر کروم) و در فایر فاکس :Server not found رو برو میشم.
فایل برنامه رو هم پیوست کردم.
 

پیوست ها

  • majid.rar
    58.2 کیلوبایت · بازدیدها: 5

Domanjiri

Well-Known Member
سلام

متاسفانه منم که چند بار تست کردم، در زمان اجرای کد، آپاچی نابود میشه(!) و connection was reset نمایش داده میشه :<

من بازم تست می کنم، اگه به نتیجه ای رسیدم همین جا بهتون میگم

موفق باشی
 

جدیدترین ارسال ها

بالا