]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Animated GIF restructuring, ImageMagick only used for resizing animated sequences.
authorMikael Nordfeldth <mmn@hethane.se>
Sun, 25 Jan 2015 21:56:55 +0000 (22:56 +0100)
committerMikael Nordfeldth <mmn@hethane.se>
Sun, 25 Jan 2015 22:00:00 +0000 (23:00 +0100)
classes/File.php
lib/default.php
plugins/ImageMagick/ImageMagickPlugin.php

index 65414977d3114ed5b8fdcd3b045a87ca1d806184..58b1b0ed8943f6ac245bfa257c77dabfcda75e6e 100644 (file)
@@ -386,7 +386,7 @@ class File extends Managed_DataObject
     {
         // Get some more information about this file through our ImageFile class
         $image = ImageFile::fromFileObject($this);
-        if ($image->animated && !common_config('image', 'resize_animated')) {
+        if ($image->animated && is_null(common_config('thumbnail', 'animated'))) {
             throw new UseFileAsThumbnailException($this->id);
         }
 
index b3918494ed9fc77f723ebfed33bb3a1ba6bf5967..9ca7760280a4d3ceb3a77e6ac2ecf0f6199da327 100644 (file)
@@ -131,8 +131,7 @@ $default =
               'delete' => false,
               'move' => true),
         'image' =>
-        array('jpegquality' => 85,
-              'resize_animated' => false),  // true doesn't mean we _can_, only that we will _try_ (plugins might do it)
+        array('jpegquality' => 85),
         'avatar' =>
         array('server' => null,
               'dir' => INSTALLDIR . '/avatar/',
@@ -258,7 +257,8 @@ $default =
         array('crop' => false,      // overridden to true if thumb height === null
               'maxsize' => 1000,     // thumbs with an edge larger than this will not be generated
               'width' => 450,
-              'height' => 600),
+              'height' => 600,
+              'animated' => null), // null="UseFileAsThumbnail", false="take still image". true requires ImageMagickPlugin
         'application' =>
         array('desclimit' => null),
         'group' =>
index 26335b6df884c1885dc16228ad9de7f6af11dd98..20ea468c7209c0c9a020b0571661e44d334fc77e 100644 (file)
@@ -34,32 +34,18 @@ if (!defined('GNUSOCIAL')) { exit(1); }
  *  php5-imagick
  *
  * Provides:
- *  Animated image support (for image/gif at least)
+ *  Animated GIF resize support
  *
- * Suggestions:
- *  After enabling the ImageMagick plugin, you might want to regenerate
- *  thumbnails for the newly support formats. This is easiest done with
- *  a script in the GNU social-bundled scripts directory:
- *  $ php scripts/clean_thumbnails.php
+ * Comments:
+ *  Animated GIF resize requires setting $config['thumbnail']['animated'] = true;
  *
  * Bugs:
  *  Not even ImageMagick is very good at resizing animated GIFs.
+ *  We are not infinitely fast, so resizing animated GIFs is _not_ recommended.
  */
 
 class ImageMagickPlugin extends Plugin
 {
-    // configurable plugin options must be declared public
-    public $resize_animated = null;
-
-    public function initialize()
-    {
-        parent::initialize();
-
-        if (is_null($this->resize_animated)) {
-            $this->resize_animated = common_config('image', 'resize_animated');
-        }
-    }
-
     /**
      * @param ImageFile $file An ImageFile object we're getting metadata for
      * @param array $info The response from getimagesize()
@@ -76,12 +62,8 @@ class ImageMagickPlugin extends Plugin
 
     public function onStartResizeImageFile(ImageFile $imagefile, $outpath, array $box) {
         // So far we only take over the resize for IMAGETYPE_GIF
-        // (and only animated for gifs!)
-        if ($imagefile->type == IMAGETYPE_GIF && $imagefile->animated) {
-            if (!$this->resize_animated) {
-                // Don't resize if not desired, due to CPU/time limitations
-                return false;
-            }
+        // (and only animated for gifs! (and only if we really want to resize the animation!))
+        if ($imagefile->type == IMAGETYPE_GIF && $imagefile->animated && common_config('thumbnail', 'animated')) {
             $magick = new Imagick($imagefile->filepath);
             $magick = $magick->coalesceImages();
             $magick->setIteratorIndex(0);
@@ -111,8 +93,7 @@ class ImageMagickPlugin extends Plugin
                             'homepage' => 'http://gnu.io/social',
                             'rawdescription' =>
                             // TRANS: Plugin description.
-                            _m('Use ImageMagick for better image support.'));
+                            _m('Use ImageMagick for some more image support.'));
         return true;
     }
 }
-