=== Smush Image Compression and Optimization ===
Plugin Name: Smush Image Compression and Optimization
Version: 2.7.4.1
Author: WPMU DEV
Author URI: http://premium.wpmudev.org/
Contributors: WPMUDEV, alexdunae
Tags: image, resize, optimize, compress, performance, lossless, lossy, photo, pictures, optimize JPG, compress PNG, Smush WordPress Compression, Smush.it
Requires at least: 3.5
Tested up to: 4.8
Stable tag: 2.7.4.1
License: GPL v2 - http://www.gnu.org/licenses/old-licenses/gpl-2.0.html

Compress and optimize image files, improve performance and boost your SEO rank using Smush WordPress image compression and optimization.

== Description ==

<strong>Resize, optimize and compress all of your images with the incredibly powerful and 100% free WordPress image smusher, brought to you by the superteam at WPMU DEV!</strong>

= Award Winning Image Optimization =
Smush has been benchmarked and tested number one for speed and quality and is the <a href="https://torquemag.io/2017/04/wp-smush-defeats-wordfence-wins-plugin-madness-2017/">award-winning</a>, proven crowd favorite image optimization plugin for WordPress.

Now with image resizing! Set a max width and height and large images will scale down as they are being compressed.

Our servers do all the heavy lifting. Strip hidden bulky information from your images and reduce file size without losing quality.

Large image files may be slowing down your site without you even knowing it. WP Smush uses WPMU DEV’s super servers to quickly smush every single one of your images and cuts all the unnecessary data without slowing down your site.

[youtube https://www.youtube.com/watch?v=BDtgVJZEajg&feature=youtu.be]

WP Smush meticulously scans every image you upload – or have already added to your site – cuts all the unnecessary data and scales it for you before adding it to your media library.

<a href="https://garage.godaddy.com/wordpress-plugin-partner-program/directory/?cvosrc=advocacy.evangelism.WP3" rel="nofollow"><img src="https://garage.godaddy.com/wp-content/uploads/badges/godaddy-plugin-partner-program-badge.svg" title="GoDaddy Plugin Program Partner" alt="GoDaddy Plugin Program Partner"/></a>

= Compress any Image in any Directory =

In addition to smushing your media uploads, you may want to compress the images stored in other folders. Smush now lets you compress any image in any directory so that you can optimize all the images on your site – including <a href="https://wordpress.org/plugins/nextgen-gallery/">NextGEN</a> images, images stored on Amazon S3 using <a href="https://wordpress.org/plugins/amazon-s3-and-cloudfront/">WP Offload S3</a> and images in EVERY WordPress plugin and theme package!

= Compatible with Your Favorite Media Library Plugins =

No matter what plugins you use to better manage your WordPress media library, Smush has you covered. Check out just a few of the plugins Smush is working with to help make your site faster and more efficient:

* <a href="https://wordpress.org/plugins/wp-all-import/">WP All Import</a>
* <a href="https://wordpress.org/plugins/amazon-s3-and-cloudfront/">WP Offload S3</a>
* <a href="https://www.joomunited.com/wordpress-products/wp-media-folder">WP Media Folder</a>
* <a href="https://wordpress.org/plugins/wp-retina-2x/">WP Retina 2x</a>
* <a href="https://wordpress.org/plugins/nextgen-gallery/">NextGen Gallery</a>
* <a href="https://wpml.org/">WPML</a>
* <a href="https://wpml.org/2011/05/new-plugin-wpml-media-translation/">WPML Media Translation Add-on</a>
* <a href="https://wordpress.org/plugins/styles/">Styles</a>
* And many, many, more!

★★★★★ <br>
“I had no idea that my page load time was being dragged down by the images. The plugin nearly halved the time it took.” - <a href="http://profiles.wordpress.org/karlcw">karlcw</a>

★★★★★ <br>
“I optimize my photos in Photoshop, but Smush makes it so easy – it does it automatically. I can just sit back and enjoy the speed.” - <a href="https://profiles.wordpress.org/helen432">helen432</a>

<strong>What about Multisite?</strong> WP Smush can be used to optimize all the images across your entire network! Use global settings or configure each site individually.

WP Smush is super easy to use – no confusing compression software settings! Smush images in your library one at a time or bulk smush up to 50 images at a time.  Plus, configure auto-smush to asyncronously scale and compress some or all of your images as they are being uploaded – it's incredibly fast.

The faster your site loads, the more Google, Bing, Yahoo and other search engines will like it. Your site will load faster and rank higher.

<blockquote>
<h4>Features available in WP Smush include:</h4>
<br>
<ul>
  <li>Optimize your images using advanced lossless compression techniques.</li>
  <li>Set maximum width and height and large images will automatically scale before being added to your media library</li>
  <li>Process JPEG, GIF and PNG image files.</li>
  <li>Optimize any image in any directory.</li>
  <li>Asynchronously auto-smush your attachments for super fast compression on upload.</li>
  <li>Manually smush your attachments individually in the media library, or in bulk 50 attachments at a time.</li>
  <li>Smush all standard web-sized images 1MB or smaller. </li>
  <li>Smush images with no slowdown using WPMU DEV's fast, reliable Smush API.</li>
  <li>Global and individual settings for Multisite </li>
  <li>View advanced compression stats per-attachment and library totals.</li>
</ul>

Install WP Smush now and find out why it's the most popular image optimization plugin for WordPress available today with over 2.7 million downloads.
</blockquote>

Smush can take care of all your image compression needs, for free!

However, if you'd like to Super Smush lossy compression, the ability to optimize image up to 32MB, and bulk smush optimization for all your images in just one-click, you can always take the next step with <a href="https://premium.wpmudev.org/project/wp-smush-pro/?utm_source=wordpress.org&utm_medium=readme">WP Smush Pro</a>.


== Frequently Asked Questions ==

= I just finished running Smush and Google Pagespeed still says my images need compressing and resizing. How do I fix it? =

This means your images were not properly scaled for where they are being displayed. Scaling images before uploading them can be time consuming but can save space and speedup load time. First, determine what size your image needs to be. You can use the built-in developer tools in Chrome or Firefox to find what height and width your image should be. Once you know how large the image should be, scale your images to the right size.


<strong>Tip:</strong> you may not be need to scale each image individually. If the images are in your Media Library, you may be able to fix them with a plugin.

= Does Smush delete or replace my original full-size images? =

Nope. WordPress crops and resizes every image you upload for embedding on your site. By default, Smush only compresses these cropped and resized images, not your original full-size images. To compress your original full-sized images use <a href="https://premium.wpmudev.org/project/wp-smush-pro/?utm_source=wordpress.org&utm_medium=readme">WP Smush Pro</a>.

= What type of file should I use for my images (GIF, PNG, JPG)? =

GIF files are large and can’t be optimized much. They should only be used if the image is animated.


PNG is best for computer generated graphics (vectors, logos, fonts, etc.), images with few colors or images with transparency.


JPG should be used for photography or images with a lot of color variation.

= I’m a photographer can I keep all my EXIF data? =

Yes! EXIF data stores camera settings, focal length, date, time and location information in image files. EXIF data makes image files larger but if you are a photographer you may want to preserve this information. We have included the option to preserve EXIF image data in WP Smush.

= I just ran bulk smush and some of my images didn't get compressed? =

First, check to see if you're receiving any server errors. If your images seem to be processing correctly check the file size of the images being skipped. Images over 1mb will be skipped. To compress images up to 32mb get <a href="https://premium.wpmudev.org/project/wp-smush-pro/?utm_source=wordpress.org&utm_medium=readme">WP Smush Pro</a>.

= I activated Smush and I don’t see any difference in image quality. How am I supposed to know if Smush is working? =

Great question! It is important to understand Smush is an optimization tool that uses lossless image compression to save disk storage space and speed up your site. Smush squeezes data from your image files that will save space, resize huge images, and improve speed without changing quality.

You can track file size changes in your media library, individual image savings, directory savings, and Smush total savings with Smush stats. If you want to see some additional magic, run before-and-after page-speed tests with WP Checkup or Google PageSpeed Insights. Every little bit of resource savings is important when it comes to page-speed!

= Can't I just use Photoshop or another image editing application to optimize my images? =

Optimizing all the image sizes generated by WordPress, images being imported from plugins and themes, and images from other web sites is a painful and time consuming process.

Smush automatically handles optimizing all your images no matter where they come from and  can be used as a standalone tool or alongside Photoshop.

== Screenshots ==

1. Watch as your image library is processed – up to 50 images at a time.
2. Set automatic smush to resize and optomize every image as it is uploaded.
3. Smush will find and optimize images for you.

== Installation ==

1. Upload the `wp-smush` plugin to your `/wp-content/plugins/` directory.
1. Activate the plugin through the 'Plugins' menu in WordPress.
1. Configure your desired settings via the `Media -> WP Smush` settings page.
1. Done!

== Upgrade Notice ==

Yahoo's Smush.it API is gone forever. So WPMU DEV built our own free API that is faster, more reliable, and more powerful. Upgrade now!


== Changelog ==

= 2.7.4.1 =

* Fixed:
    * `get_current_screen()` method causing error on some sites

= 2.7.4 =

* Update: Minor UI changes
* Fixed:
    * Images not being resized when image is uploaded via Mobile App
    * Notices and Warnings
    * S3 offload Integration - Original Image not being deleted in some cases

= 2.7.3.1 =

* Fixed: Pro user unable to login to WPMU DEV Dashboard plugin when Smush is active, Error: "Your key is invalid."
* Updated: S3 Integration, return URL for any error, 'as3cf_get_attached_file'

= 2.7.3 =

* Fixed:
    * Manual Smush not working
    * Bulk Smush broken for few sites

= 2.7.2 =

* Updated:
    * Use JS for stats calculation while using Bulk Smush, to reduce the Ajax time
* Fixed:
    * Some Images would keep appearing in the re-smush list, if "Resize original images" is enabled
    * Enable buttons in settings redirects to network smush settings page in a subsite if networkwide settings are enabled

= 2.7.1 =

* Fixed: Progress bar not updating

= 2.7 =

* Updated:
    * Faster image uploads: Set async request timeout to 0, if you're having trouble with Auto Smush, set timeout using filter `smush_async_time_out`

* Fixed:

    * Issue with WP Smush Pro membership check
    * Stats: Rating message shows incorrect image count
    * Stats: Include directory smush stats in media stats
    * Directory Smush: UI improvement
    * Directory Smush: Allow re-smushing directory images, if the lossy feature is turned on
    * Directory Smush: Fixed empty query warning if there are more than 5k images
    * Site Ground Staging - Disable Async smush for staging sites, admin URL for async request is incorrect because of the Apache module
    * Image appearing in Re-Smush list even after smushing, if resize settings are kept on.
    * Performance: Updated query for smushed images count
* Added:
    * WP S3 Offload - Plugin Compatibility for Remove files from server feature ( Pro Version )
    * WP RSS Aggregator compatibility for Auto Smush
    * WordPress mobile app Auto smush compatibility

= 2.6.3 =

* Fixed:

    * Compatibility issue with WP Defender
    * Image dimensions not updated after resizing in Grid view

* Added:

    * Added a check to preserve smush stats on plugin deletion, You can add `define('WP_SMUSH_PRESERVE_STATS', true );` in wp-config.php

= 2.6.2 =

* Added:
    * WP All Import Compatibility

* Fixed:
    * Image not being updated to S3 after resmush ( *Only if remove files from server is kept off in S3 plugin settings )
    * Added check for directory smush savings
    * Call `wp_update_attachment_metadata` after smushing, to allow the optimised image to be used
    * Dir Smush: Images with special symbols doesn't gets optimised
    * Dir Smush: Skip .bak files
    * Retina Images @2x: Do not smush if auto smush is disabled
    * Backup ( Pro ): Take backup of original untouched image, improved backup and restore.

* Updated:
    * Smush Limit ( 50 Images ), do not include images with error in count

= 2.6.1 =

* Fixed:
    * PHP 5.2 compatibility
    * DB error: Use a smaller value for Path Index size ( Prefix Indexes )
    * Updated translation function name
    * UI/UX fixes for directory smush
    * Improved optimisation process for directory smush
    * Updated uninstall.php
    * Skip sites directory from Directory Smush in a Multisite

= 2.6 =

* Fixed:
    * PHP 7 warning ( https://goo.gl/GKEMim ), @props: @alexis-mag
    * Async Smush conflict with other plugins

* Changes:
    * Moved notice JS/CSS in footer
    * Bulk Smush page optimisation
    * Increased timeout for Async request - Fixes Async smush not working for some hosting services

* Added:
    * Directory Smush

= 2.5.3 =

* Fixed:
    * Show a Smush progress message in Grid view for Auto Smush
      ( A lot of people reported it as Auto Smush not working, which works in background though )
    * Translation domain was incorrect for few strings
    * Translation: Load translation domain in main plugin file
    * Include image size `medium_large` in smush list
    * Error: Cannot use string offset as an array
    * Error in PNG to JPG conversion ( Pro Feature ), added check for mime_content_type function
    * Pro Status not recognised

= 2.5.2 =

* Added:
    * Filter: `wp_smush_image`, Boolean, Whether to Smush image or not
    * Async Optimisation for Auto Smush on upload ( Set WP_SMUSH_ASYNC to false to turn off async optimisation )
    * Networkwide settings option in a Multisite

* Fixed:
    * Double slash in file path causing 403 on some of the sites
    * Localisation error reported by @talgat ( Thank You :) )

= 2.4.5 =

* Fixed:
    * Error "No file content sent" with WP 4.6

= 2.4.4 =

* Fixed:
    * PNG to JPEG conversion not working for Multisite
    * Stats Calculation, Use custom query to retrieve data
    * Fixed warning and notices
    * Added check for invalid membership ( Pro Users )
    * thumbnails not being converted for PNG to JPEG conversion
* Removed option to convert Transparent PNGs to JPEGs ( Pro Users )

= 2.4.3 =

* Fixed: Image resizing not working on image upload

= 2.4.2 =

* Fixed: PHP 5.2 compatibility

= 2.4.1 =

* Fixed: Conflict with Customizer

= 2.4 =

* Compatibility:
    * WPML Media Add-on compatibility, you can smush all the images for all the languages at once from Bulk Smush page

* Features:
    * Added PNG to JPG - Lossy Conversion for higher savings ( Pro Feature )

*Fixed:
    * EXIF: Device details were left out for some images, even when opted for stripping it

* Updated:
    * Minor Tweaks on WP Smush Page ( Bulk Smush )
    * Stats calculation is more accurate
    * Show current image size and image size dimensions in media library after image has been smushed
    * JPEG optimisation - higher savings for JPEGs lossy optimisation ( Pro Feature )

= 2.3.1 =

* Fixed:
    * Stats not updated on resizing images
    * CSS conflict in Media Library

= 2.3 =

* Fixed:
    * Tooltip on image edit page
    * Warning and Notices
* Updated:
    * Improved stats calculation
    * Bulk Smush page optimised for Image heavy sites
    * Cleanup on uninstall
* Added:
    * Image Resizing option for Media, NextGen(Pro Only) images
    * Total image count on stats page

= 2.2.2 =

- Fixed: JS error causing issue with Editor on some installs, plugin conflict with CoursePress plugin, ACF ( Clear All Caches after plugin upgrade, Cloudflare as well )
- Fixed: ReSmush count for bulk smushing
- Fixed: Smush settings accessibility for Screen reader/Keyboard
- Fixed: WP Admin loading slow ( Load smush stats on required admin pages only )

= 2.2.1 =
* New: Option to resmush image if settings are changed after optimising images
* New: Added an option to preserve EXIF
* New: Remove Smush meta on image regeneration,
       This allows user to manually smush them later, if auto smush is off ( WP Image Editor support )
* New: Manual Image restore option for Media Library and NextGen Gallery, if "Backup Original Images" was kept on while smushing ( Pro Only )
* New: Delete Backup Files (Pro Only) on attachment deletion
* Updated: Upfront Integration
* Fixed: jQuery tooltip conflict
* Code Optimisation, Updated Settings page UI

= 2.1.5 =

* Fixed: WP Media Folder Plugin compatibility
* Fixed: Warning on Plugins Page
* Updated: Settings Page styling

= 2.1.4 =
* Fixed: Preserve file permission after smushing ( Fix for Images disappearing in Media library on some hosts )
* Fixed: Styles plugin compatibility
* Fixed: Append URL params considering the existing arguments ( WPML Compatibility )
* Fixed: Warning: For settings link in Network admin, Warning: https://goo.gl/HAfhaF ( Thank you @Maks3w for suggestions )
* Fixed: Fatal error if both pro version and free version are activated
* Fixed: NextGen-Smush conflict on plugin activation on a fresh install

= 2.1.3 =
* Fixed: Compatibility with WPMU DEV Dashboard plugin v4.0, was not detecting pro status

= 2.1.2 =
* Fixed: Important fix for transient issue leading to multiple api requests

= 2.1.1 =
* Fixed: Workaround for terrible bug in W3TC file based object caching

= 2.1 =
* Fixed: Untranslatable strings in settings
* Fixed: Increased is_pro() API timeouts
* Fixed: Remove redundant _get_api_key() cache check
* Fixed: Some PHP notices on fresh installs

= 2.0.7.1 =

* Fixed: Bulk Smush button keeps spinning after 50 images for free version
* Fixed: NextGen Bulk Smush button issue

= 2.0.7 =

* Fixed: Invalid header issue
* Fixed: Warnings in file functions
* Updated: Added limit on query results, for sites with higher image count, Use filter `wp_smush_media_query_limit` to adjust values
* Added: Sortable WP Smush column in Media Library
* Added: Filters `wp_smush_media_image` for Media Gallery, `wp_smush_nextgen_image` For NextGen gallery,
          allows to skip a particular image size from smushing
* Added: NextGen Gallery support (Pro feature)

= 2.0.6.5 =

* Updated: Skip webp images ( causing ajax error for few sites )
* Fixed: Warning and Notices ( Media Library not loading )
* Fixed: Smush full size image if no other sizes are available
* Added: Detailed text for stats and settings

= 2.0.6.3 =

* Fixed: Change File permission after replacing image
* Fixed: Directory path for files
* Fixed: Workaround for Auto Smush issue on Hostgator
* Fixed: Smush button doesn't works in media library dialog on post screen, when add media is clicked
		 (https://wordpress.org/support/topic/like-wp-smush-a-lot)
* New:   Show number of images smushed in stats column
* Added: Support for WP Retina 2x Plugin
* Added: Filter `WP_SMUSH_API_TIMEOUT` to change the default time out value from 60s
* Added: Smush original image option (Pro Only)

= 2.0.6.2 =

* Use string for text domain instead of PHP Constant ( WordPress Guideline )

= 2.0.6.1 =

* Updated: Max image size limit to 32Mb for Pro Version

= 2.0.6 =

* Fixed: Conflict with various themes while editing post and page
* Fixed: Word Count not working
* Fixed: Notice and Warnings

= 2.0.5 =

* New:   Allow Super-smush for existing smushed images (Pro Only)
* Fixed: IMPORTANT - broken transient caching for is_pro
* Fixed: Fixed conflict with wp gallery link plugin in grid view
* Fixed: Other small fixes


= 2.0.4 =
* Fix: Fatal error conflict with some plugins on fronted of site

= 2.0.3 =
* Fixed (Important Update) - Image being corrupted while regenerating thumbnails

= 2.0.2 =
* Check for existing constant definition, before defining new

= 2.0.1 =
* UI changes

= 2.0 =
* Complete rewrite to use WPMU DEV's new fast and reliable API service.
* New: One-click bulk smushing of all your images.
* New: "Super-Smush" your images with our intelligent multi-pass lossy compression. Get over 2x more compression with almost no noticeable quality loss! (Pro)
* New: Keep a backup of your original un-smushed images in case you want to restore later. (Pro)
* UX/UI updated with overall stats, progress bar.

= 1.7 =
* Use Ajax for Bulk Smush to avoid timeouts and internal server error
* Other Notice and bug fixes
* Settings moved under Media > WP Smush.it
* Added debug log file

= 1.6.5.4 =
* Added settings option to disable check for home url.
* for PHP 5.4.x reordered class WpSmushit contructors to prevent Strict Standards Exception

= 1.6.5.3 =
* Removed check for file within local site home path. 

= 1.6.5.2 =
* Corrected issues with Windows paths compare.
* Added debug output option to help with user support issues. 

= 1.6.5.1 =
* Correct Settings > Media issue causing settings to report warnings and not save. 
* Corrected some processing logic to better handling or image path. Images still need to be within ABSPATH of site
* Correct image URL passed to Smush.it API to convert https:// urls to http:// since the API does not allow https:// images


= 1.6.5 =
* Codes reformatted and cleaned up into a php class
* More texts are translatable now

= 1.6.4 =
* Fixed a bug that prevents execution

= 1.6.3 =
* check image size before uploading (1 MB limit)
* attempt to smush more than one image before bailing (kind thanks to <a href="http://wordpress.org/support/profile/xrampage16">xrampage16</a>)
* allow setting timeout value under `Media > Settings` (default is 60 seconds)

= 1.6.2 =
* about to get a new lease on life notice

= 1.6.1 =
* no longer maintained notice

= 1.6.0 =
* added setting to disable automatic smushing on upload (default is true)
* on HTTP error, smushing will be temporarily disabled for 6 hours

= 1.5.0 =
* added basic integration for the <a href="http://wordpress.org/extend/plugins/wp-smushit-nextgen-gallery-integration/">NextGEN gallery plugin</a>
* add support for media bulk action dropdown
* compatibility with WordPress earlier than 3.1
* added a <a href="http://dunae.ca/donate.html">donate link</a>

= 1.4.3 =
* cleaner handling of file paths

= 1.4.2 =
* bulk smush.it will no longer re-smush images that were successful

= 1.4.1 =
* bug fixes

= 1.4.0 =
* bulk smush.it

= 1.3.4 =
* bug fixes

= 1.3.3 =
* add debugging output on failure

= 1.3.2 =
* removed realpath() call
* IPv6 compat

= 1.3.1 =
* handle images stored on other domains -- props to [ka-ri-ne](http://wordpress.org/support/profile/ka-ri-ne) for the fix
* avoid time-out errors when working with larger files -- props to [Milan Dinić](http://wordpress.org/support/profile/dimadin) for the fix

= 1.2.10 =
* removed testing link

= 1.2.9 =
* updated Smush.it endpoint URL

= 1.2.8 =
* fixed path checking on Windows servers

= 1.2.7 =
* update to workaround WordPress's new JSON compat layer (see [trac ticket](http://core.trac.wordpress.org/ticket/11827))

= 1.2.6 =
* updated Smush.it endpoint URL
* fixed undefined constant

= 1.2.5 =
* updated Smush.it endpoint URL

= 1.2.4 =
* removed debugging code that was interfering with the Flash uploader

= 1.2.3 =
* bug fix

= 1.2.2 =
* updated to use Yahoo! hosted Smush.it service
* added security checks to files passed to `wp_smushit()`

= 1.2.1 =
* added support for PHP 4
* created admin action hook as workaround to WordPress 2.9's `$_registered_pages` security (see [changeset 11596](http://core.trac.wordpress.org/changeset/11596))
* add savings amount in bytes to Media Library (thx [Yoast](http://www.yoast.com/))

= 1.2 =
* added support for `WP_Http`

= 1.1.3 =
* fixed activation error when the PEAR JSON library is already loaded

= 1.1.2 =
* added test for `allow_url_fopen`

= 1.1.1 =
* added error message on PHP copy error

= 1.1 =
* improved handling of errors from Smush.it
* added ability to manually smush images from media library
* fixed inconsistent path handling from WP 2.5 -> WP 2.7

= 1.0.2 =
* added 'Not processed' status message when browsing media library

= 1.0.1 =
* added i10n functions

= 1.0 =
* first edition

== About Us ==
WPMU DEV is a premium supplier of quality WordPress plugins and themes. For premium support with any WordPress related issues you can join us here:
<a href="https://premium.wpmudev.org/?utm_source=wordpress.org&utm_medium=readme">https://premium.wpmudev.org/</a>

Don't forget to stay up to date on everything WordPress from the Internet's number one resource:
<a href="https://premium.wpmudev.org/blog/?utm_source=wordpress.org&utm_medium=readme">WPMU DEV Blog</a>

Hey, one more thing... we hope you <a href="http://profiles.wordpress.org/WPMUDEV/">enjoy our free offerings</a> as much as we've loved making them for you!

== Contact and Credits ==

Originally written by Alex Dunae at Dialect ([dialect.ca](http://dialect.ca/?wp_smush_it), e-mail 'alex' at 'dialect dot ca'), 2008-11.