WordPress 4.1.4-scripts
[autoinstalls/wordpress.git] / wp-includes / class-wp-image-editor.php
index 5792df31623a1f17220bffc0b2b5d1fe17650db3..fcca5574b875d6a0eff71a3c45dbb60870f913b7 100644 (file)
@@ -213,9 +213,31 @@ abstract class WP_Image_Editor {
         */
        public function get_quality() {
                if ( ! $this->quality ) {
+                       $this->set_quality();
+               }
+
+               return $this->quality;
+       }
+
+       /**
+        * Sets Image Compression quality on a 1-100% scale.
+        *
+        * @since 3.5.0
+        * @access public
+        *
+        * @param int $quality Compression Quality. Range: [1,100]
+        * @return boolean|WP_Error True if set successfully; WP_Error on failure.
+        */
+       public function set_quality( $quality = null ) {
+               if ( null === $quality ) {
                        /**
                         * Filter the default image compression quality setting.
                         *
+                        * Applies only during initial editor instantiation, or when set_quality() is run
+                        * manually without the `$quality` argument.
+                        *
+                        * set_quality() has priority over the filter.
+                        *
                         * @since 3.5.0
                         *
                         * @param int    $quality   Quality level between 1 (low) and 100 (high).
@@ -227,6 +249,11 @@ abstract class WP_Image_Editor {
                                /**
                                 * Filter the JPEG compression quality for backward-compatibility.
                                 *
+                                * Applies only during initial editor instantiation, or when set_quality() is run
+                                * manually without the `$quality` argument.
+                                *
+                                * set_quality() has priority over the filter.
+                                *
                                 * The filter is evaluated under two contexts: 'image_resize', and 'edit_image',
                                 * (when a JPEG image is saved to file).
                                 *
@@ -236,28 +263,15 @@ abstract class WP_Image_Editor {
                                 * @param string $context Context of the filter.
                                 */
                                $quality = apply_filters( 'jpeg_quality', $quality, 'image_resize' );
+                       }
 
-                               if ( ! $this->set_quality( $quality ) ) {
-                                       $this->quality = $this->default_quality;
-                               }
+                       if ( $quality < 0 || $quality > 100 ) {
+                               $quality = $this->default_quality;
                        }
                }
 
-               return $this->quality;
-       }
-
-       /**
-        * Sets Image Compression quality on a 1-100% scale.
-        *
-        * @since 3.5.0
-        * @access public
-        *
-        * @param int $quality Compression Quality. Range: [1,100]
-        * @return boolean|WP_Error True if set successfully; WP_Error on failure.
-        */
-       public function set_quality( $quality = null ) {
                // Allow 0, but squash to 1 due to identical images in GD, and for backwards compatibility.
-               if ( $quality == 0 ) {
+               if ( 0 === $quality ) {
                        $quality = 1;
                }