Commit Graph

192 Commits

Author SHA1 Message Date
Andrew Ozz 60c2966222 Upload: When an image was scaled because it is larger than the big image threshold, use the originally uploaded image's dimensions in `wp_get_missing_image_subsizes()`. Fixes an edge case/inconsistent behaviour when a registered image sub-size is also larger than the big image threshold.
Props desrosj, azaozz.
Fixes #48518 for trunk.
Built from https://develop.svn.wordpress.org/trunk@46677


git-svn-id: http://core.svn.wordpress.org/trunk@46477 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-11-07 18:51:02 +00:00
Andrew Ozz f9e81c83d5 Media: Remove the variable number (from the big image threshold value) when generating file names for scaled images. This makes it easier to "calculate" the full size file name from the name of an intermediate size image.
Props ianmjones, azaozz.
Fixes #48453 for trunk.
Built from https://develop.svn.wordpress.org/trunk@46658


git-svn-id: http://core.svn.wordpress.org/trunk@46458 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-11-05 20:53:03 +00:00
Andrew Ozz 43ed67661a Upload: Ensure the new image meta is always saved before starting post-processing of an uploaded image, even if there was an error while scaling or rotating it.
See #48472.
Built from https://develop.svn.wordpress.org/trunk@46651


git-svn-id: http://core.svn.wordpress.org/trunk@46451 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-11-04 17:07:03 +00:00
Sergey Biryukov 8b76312eb3 Docs: Correct some array hash notations added in [46644].
See #48303.
Built from https://develop.svn.wordpress.org/trunk@46647


git-svn-id: http://core.svn.wordpress.org/trunk@46447 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-11-04 09:37:02 +00:00
John Blackbourn b3d6acd6a4 Docs: Fix some incorrect return tags in docblocks.
See #48303

Built from https://develop.svn.wordpress.org/trunk@46644


git-svn-id: http://core.svn.wordpress.org/trunk@46444 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-11-03 22:23:01 +00:00
Sergey Biryukov 3d76b537d6 Docs: Add `@since` tag for the `$context` parameter added to `wp_generate_attachment_metadata` filter in [46621].
See #48472.
Built from https://develop.svn.wordpress.org/trunk@46622


git-svn-id: http://core.svn.wordpress.org/trunk@46419 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-10-31 00:13:01 +00:00
Andrew Ozz ed651b17a4 Upload:
- Run the `wp_generate_attachment_metadata` filter at the end in `wp_update_image_subsizes()` when new metadata was generated and additional image sub-sizes were created.
- Add another arg in the `wp_generate_attachment_metadata` filter for additional context.
- Fix inline docs and ensure the new image meta is always saved before starting post-processing.

Fixes #48472 for trunk.
Built from https://develop.svn.wordpress.org/trunk@46621


git-svn-id: http://core.svn.wordpress.org/trunk@46418 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-10-30 21:10:04 +00:00
Andrew Ozz e1560cd1e0 Media/Upload: When the users upload big images and WordPress creates a scaled image to use as the largest size, append `scaled-` to the file names of the scaled images to make them easier to recognize.
Props kraftbj, azaozz.
Fixes #48304.
Built from https://develop.svn.wordpress.org/trunk@46565


git-svn-id: http://core.svn.wordpress.org/trunk@46362 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-10-21 21:43:04 +00:00
Andrew Ozz 1940cf7d54 Media: Do not store error messages in the image meta. The initial idea was to (be able to) display these errors in the UI but it wasn't implemented as these errors are mostly helpful for low-level bedugging.
Fixes #40439.
Built from https://develop.svn.wordpress.org/trunk@46507


git-svn-id: http://core.svn.wordpress.org/trunk@46304 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-10-14 20:05:01 +00:00
Mike Schroder 66c8085fc4 Media: Update fallback previews to support `_wp_make_subsizes()`
Allows fallback previews (PDF by default, in core) to save image meta
after each size is generated to allow for resuming, and make sizes
immediately available.

Props azaozz, antpb, progremzion, mikeschroder.
See #48111.
Built from https://develop.svn.wordpress.org/trunk@46459


git-svn-id: http://core.svn.wordpress.org/trunk@46257 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-10-11 07:54:03 +00:00
Andrew Ozz f793398e4f Upload: Set custom header with the attachment ID for all uploads from `media_handle_upload()`. Let the REST API endpoint set it separately.
Props timothyblynjacobs.
Fixes #48200.
Built from https://develop.svn.wordpress.org/trunk@46421


git-svn-id: http://core.svn.wordpress.org/trunk@46219 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-10-07 15:30:02 +00:00
Sergey Biryukov 60617d471b Docs: Add missing documentation for the first parameter of the `big_image_size_threshold` filter.
Props dkarfa, desrosj, earnjam.
Fixes #48214.
Built from https://develop.svn.wordpress.org/trunk@46398


git-svn-id: http://core.svn.wordpress.org/trunk@46197 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-10-05 01:30:58 +00:00
Andrew Ozz ff225c8bfc Upload: Fix the method used to create image sub-sizes when uploading fails with a PHP fatal error. Use a custom header to send the new attachment post ID even in HTTP 500 responses instead of an upload reference sent by the client. Also add another cap check and remove the action when deleting an attachment post during a failed upload cleanup.
Props timothyblynjacobs, clorith, azaozz.
Fixes #48200.
Built from https://develop.svn.wordpress.org/trunk@46382


git-svn-id: http://core.svn.wordpress.org/trunk@46181 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-10-03 21:02:00 +00:00
Sergey Biryukov 44c3cefb24 Docs: Fix typo in `wp_get_missing_image_subsizes()` DocBlock.
Props david.binda.
Fixes #48179.
Built from https://develop.svn.wordpress.org/trunk@46368


git-svn-id: http://core.svn.wordpress.org/trunk@46167 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-10-01 01:19:57 +00:00
Andrew Ozz 38e6958698 Media: Move `wp_get_original_image_path()` to `wp-content/post.php` to make it easier to access from plugins.
Props pbiron.
See #47873.
Built from https://develop.svn.wordpress.org/trunk@46353


git-svn-id: http://core.svn.wordpress.org/trunk@46152 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-09-30 16:28:59 +00:00
Sergey Biryukov a879bcb1c6 Code Modernization: Remove a workaround for `IMAGETYPE_ICO` in `file_is_displayable_image()`.
The `IMAGETYPE_ICO` constant was introduced in PHP 5.3, so no longer needs a workaround.

Props jrf.
See #48074.
Built from https://develop.svn.wordpress.org/trunk@46217


git-svn-id: http://core.svn.wordpress.org/trunk@46029 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-09-20 22:18:59 +00:00
Andrew Ozz 29ea4c6a4c Media/Upload: rotate images on upload according to EXIF Orientation.
Props msaggiorato, wpdavis, markoheijnen, dhuyvetter, msaggiorato, n7studios, triplejumper12, pbiron, mikeschroder, joemcgill, azaozz.

Fixes #14459.
Built from https://develop.svn.wordpress.org/trunk@46202


git-svn-id: http://core.svn.wordpress.org/trunk@46014 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-09-20 18:21:57 +00:00
Andrew Ozz dc8349ba0a Media: Add handling for "BIG" images. When the users upload a big image, typically a photo, scale it down to make it suitable for web use. Then use the scaled image as the "full" size, and keep the originally uploaded image for creating high quality sub-sizes in the future and in case the users want to download it later.
Introduces `wp_get_original_image_path()` that retrieves the path to the originally uploaded image in all cases, and `big_image_size_threshold` filter to set the pixel value above which images will be scaled. The same value is used as max-width and max-height when scaling.

See #47873.
Built from https://develop.svn.wordpress.org/trunk@46076


git-svn-id: http://core.svn.wordpress.org/trunk@45888 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-09-07 01:07:55 +00:00
Andrew Ozz e313498193 Uploads: After an image is uploaded and PHP times out or runs out of memory during post-processing (the server response is HTTP 500 error), try to resize it three more times. Then, if all attempts fail, do a cleanup of any sub-sizes that may have been created and show an error message asking the user to scale the image and upload it again.
See #47872.
Built from https://develop.svn.wordpress.org/trunk@45934


git-svn-id: http://core.svn.wordpress.org/trunk@45745 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-09-04 01:11:54 +00:00
Sergey Biryukov 3d12c4b6d8 Docs: Fix typo in `_wp_make_subsizes()` DocBlock.
Props itowhid06.
Fixes #47913. See #40439.
Built from https://develop.svn.wordpress.org/trunk@45871


git-svn-id: http://core.svn.wordpress.org/trunk@45682 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-08-21 16:23:56 +00:00
Andrew Ozz 5eba5381e6 Media: Sort the new sizes array by priority when creating image sub-sizes.
See #40439.
Built from https://develop.svn.wordpress.org/trunk@45645


git-svn-id: http://core.svn.wordpress.org/trunk@45456 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-07-16 21:48:56 +00:00
Gary Pendergast abcbee954f Coding Standards: Fix instances of `WordPress.PHP.NoSilencedErrors.Discouraged`.
Noteable changes:
- The `magic_quotes_runtime` and `magic_quotes_sybase` settings were removed in PHP 5.4, so no longer need to be set.
- Some functions that use external libraries can generate errors that can't be tested for, so are globally allowed to silence errors.
- Quite a few functions would cause errors if `safe_mode` was set. This setting was removed in PHP 5.4.
- Only a handful of `header()` calls needed corresponding `headers_sent()` checks for unit tests to pass, but more may need to be added as the nightlies builds are tested.

See #46732.

Built from https://develop.svn.wordpress.org/trunk@45611


git-svn-id: http://core.svn.wordpress.org/trunk@45422 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-07-09 05:45:58 +00:00
Andrew Ozz 88ffa41ee3 Media: Ignore errors coming from `image_resize_dimensions()` when creating sub-sizes (for now). It returns `false` when the requested size is larger than the original image and should be skipped. This triggers new `WP_Error` in `WP_Image_Editor::resize()`.
See #40439.
Built from https://develop.svn.wordpress.org/trunk@45543


git-svn-id: http://core.svn.wordpress.org/trunk@45354 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-06-16 01:33:51 +00:00
Andrew Ozz da7839dc45 After [45538]: fix another WPCS "strict comparison" fix.
Props birgire.
See #40439.
Built from https://develop.svn.wordpress.org/trunk@45540


git-svn-id: http://core.svn.wordpress.org/trunk@45351 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-06-15 16:24:52 +00:00
Andrew Ozz 5987caeecc After [45538]: fix a WPCS fix and make couple of var names consistent.
See #40439.
Built from https://develop.svn.wordpress.org/trunk@45539


git-svn-id: http://core.svn.wordpress.org/trunk@45350 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-06-15 01:32:53 +00:00
Andrew Ozz 05302bd054 Save progress of intermediate image creation after upload. First run.
- Introduces `wp_get_missing_image_subsizes()` and `wp_update_image_subsizes()` to generate image sub-sizes that are missing or were not created after the upload.
- Adds a way to display errors that happened while creating sub-sizes.
- Introduces `wp_create_image_subsizes()` intended for use after an image was uploaded. It saves/updates the image metadata immediately after each sub-size is created. This fixes the (long standing) problem when some of the sub-size image files were created but there was a timeout or an error and the metadata was not saved. Until now such uploads were considered "failed" which usually resulted in the user trying to upload the same image again, creating even more "orphan" image files.

Note that the patch also includes some unrelated WPCS fixes.

Props mikeschroder, azaozz.
See #40439.
Built from https://develop.svn.wordpress.org/trunk@45538


git-svn-id: http://core.svn.wordpress.org/trunk@45349 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-06-15 01:02:52 +00:00
Aaron Jorbin 71cf332e65 Replace usages of basename() with wp_basename() in order to support multibyte filenames
This is focused on the pieces of code that touch media files and the tests that support them. `basename` isn't multibyte compatible out of the box. See http://php.net/basename and https://bugs.php.net/bug.php?id=62119.

See #43170.
Props Viper007Bond.

Built from https://develop.svn.wordpress.org/trunk@44785


git-svn-id: http://core.svn.wordpress.org/trunk@44617 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-03-01 20:58:52 +00:00
Gary Pendergast 4f861b9548 Coding Standards: Fix the `Squiz.ControlStructures.ControlSignature.SpaceAfterCloseBrace` violations.
See #45934.


Built from https://develop.svn.wordpress.org/trunk@44566


git-svn-id: http://core.svn.wordpress.org/trunk@44397 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-01-11 06:40:50 +00:00
desrosj f29dfe7b6d Docs: Update `since` tag for new `intermediate_image_sizes_advanced` filter parameter.
Originally added in [42407].

Fixes #42745.
Built from https://develop.svn.wordpress.org/trunk@44385


git-svn-id: http://core.svn.wordpress.org/trunk@44215 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-01-03 17:47:49 +00:00
Gary Pendergast 56c162fbc9 Coding Standards: Upgrade WPCS to 1.0.0
WPCS 1.0.0 includes a bunch of new auto-fixers, which drops the number of coding standards issues across WordPress significantly. Prior to running the auto-fixers, there were 15,312 issues detected. With this commit, we now drop to 4,769 issues.

This change includes three notable additions:
- Multiline function calls must now put each parameter on a new line.
- Auto-formatting files is now part of the `grunt precommit` script. 
- Auto-fixable coding standards issues will now cause Travis failures.

Fixes #44600.


Built from https://develop.svn.wordpress.org/trunk@43571


git-svn-id: http://core.svn.wordpress.org/trunk@43400 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-08-17 01:51:36 +00:00
Sergey Biryukov ff314fd156 Media: Pass EXIF data to the `wp_read_image_metadata` filter.
Props desrosj.
Fixes #43624.
Built from https://develop.svn.wordpress.org/trunk@42879


git-svn-id: http://core.svn.wordpress.org/trunk@42709 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-03-25 20:45:29 +00:00
Sergey Biryukov 079cfd60a9 Media: In `wp_read_image_metadata()`, rename `$sourceImageType` variable to `$image_type` to match coding standards.
See #43624.
Built from https://develop.svn.wordpress.org/trunk@42878


git-svn-id: http://core.svn.wordpress.org/trunk@42708 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-03-25 20:41:29 +00:00
Mike Schroder 51b0a3cd28 Media: Correctly allow changing PDF thumbnail crop value.
Corrects logic that keeping plugins from setting crop value of intermediate image sizes for rendered PDFs.

Adds test.

Props leemon, SergeyBiryukov, chetan200891, birgire.
Fixes #43226.
Built from https://develop.svn.wordpress.org/trunk@42792


git-svn-id: http://core.svn.wordpress.org/trunk@42622 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-03-07 01:19:31 +00:00
Sergey Biryukov 5596017878 Media: Recognize `.ico` files as displayable images on PHP 5.3+ and allow attachment meta data to be generated for them.
Props remyvv, Guido07111975.
Fixes #43458.
Built from https://develop.svn.wordpress.org/trunk@42780


git-svn-id: http://core.svn.wordpress.org/trunk@42610 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-03-05 01:03:31 +00:00
Sergey Biryukov 35653f0432 Media: Bring consistency to `getimagesize()` error suppression.
Props chasewg, joemcgill, jeremyfelt.
Fixes #42480.
Built from https://develop.svn.wordpress.org/trunk@42449


git-svn-id: http://core.svn.wordpress.org/trunk@42279 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-01-15 19:44:47 +00:00
John Blackbourn cb53982d1f Media: Pass the attachment ID to the `intermediate_image_sizes_advanced` filter.
Props drywallbmb, robbie505
Fixes 42745

Built from https://develop.svn.wordpress.org/trunk@42407


git-svn-id: http://core.svn.wordpress.org/trunk@42236 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2017-12-16 13:47:47 +00:00
Gary Pendergast aaf99e6913 Code is Poetry.
WordPress' code just... wasn't.
This is now dealt with.

Props jrf, pento, netweb, GaryJ, jdgrimes, westonruter, Greg Sherwood from PHPCS, and everyone who's ever contributed to WPCS and PHPCS.
Fixes #41057.


Built from https://develop.svn.wordpress.org/trunk@42343


git-svn-id: http://core.svn.wordpress.org/trunk@42172 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2017-11-30 23:11:00 +00:00
Gary Pendergast c90cfa3b50 General: Fix some precision alignment formatting warnings.
The WPCS `WordPress.WhiteSpace.PrecisionAlignment` rule throws warnings for a bunch of code that will likely cause issues for `wpcbf`. Fixing these manually beforehand gives us better auto-fixed results later.

See #41057.


Built from https://develop.svn.wordpress.org/trunk@42228


git-svn-id: http://core.svn.wordpress.org/trunk@42057 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2017-11-26 23:57:55 +00:00
John Blackbourn d510413811 Docs: Fix various filter documentation.
See #38462, #41017

Built from https://develop.svn.wordpress.org/trunk@41215


git-svn-id: http://core.svn.wordpress.org/trunk@41055 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2017-08-03 14:34:44 +00:00
Joe McGill d6bec79fe7 Media: Keep PDF previews from overwriting files.
Since support for PDF previews were added in [38949], it's possible
that the generated image file could overwrite an existing image file
with the same name. This uses `wp_unique_filename()` to avoid this
issue and adds a '-pdf' identifier on the end of filenames.

Props gitlost, derosj, mikeschroder, joemcgill.
Fixes #39875. See #31050.
Built from https://develop.svn.wordpress.org/trunk@40130


git-svn-id: http://core.svn.wordpress.org/trunk@40067 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2017-02-27 15:39:47 +00:00
Joe McGill efb191c2ed Media: Allow PDF fallbacks filter to process custom sizes.
This fixes an oversight in [39246], which added a hook for filtering
the array of sizes used for PDF thumbnails, but failed to provide a way
for sizes added through `add_image_size()` to be processed.

Props gitlost.
Fixes #39231. See #38594.
Built from https://develop.svn.wordpress.org/trunk@39617


git-svn-id: http://core.svn.wordpress.org/trunk@39557 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-12-16 20:30:42 +00:00
Joe McGill 36ac7287b0 Media: Make PDF preview sizes filterable.
This adds a new filter, `fallback_intermediate_image_sizes`, which
can be used to modify the array of image sizes created for previewing
PDFs in the media library and checks for the existence of sizes before
processing any image representations of a PDF.

Fixes #38594.
Built from https://develop.svn.wordpress.org/trunk@39246


git-svn-id: http://core.svn.wordpress.org/trunk@39186 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-11-15 13:26:30 +00:00
Mike Schroder a8e304ec8e Media: Add support for rendering PDF thumbnails.
When support for PDFs is available, on upload,
render 'Thumbnail', 'Medium', 'Large', and 'Full' sizes of
the first page, and save them in attachment meta.

Use these renders within Add Media, Media Gallery and List views,
Attachment Details, Post/Attachment Edit screens, and Attachment pages.

Support available by default via Imagick -> ImageMagick -> Ghostscript,
but can be provided by any `WP_Image_Editor` that supports PDFs.

Props adamsilverstein, azaozz, celloexpressions, desrosj, dglingren, ericlewis, ipstenu, joemcgill, joyously, markoheijnen, melchoyce, mikeschroder, tomauger.
Fixes #31050.
Built from https://develop.svn.wordpress.org/trunk@38949


git-svn-id: http://core.svn.wordpress.org/trunk@38892 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-10-26 07:28:32 +00:00
Scott Taylor 6f9f3b0c56 Media: remove `function_exists()` call for `ini_get()` in `_load_image_to_edit_path()`.
Props dd32.
Fixes #37681.

Built from https://develop.svn.wordpress.org/trunk@38333


git-svn-id: http://core.svn.wordpress.org/trunk@38274 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-08-23 14:24:30 +00:00
Scott Taylor d31456b615 Media: add a function, `wp_get_additional_image_sizes()`, that wraps the retrieval of the global `$_wp_additional_image_sizes`. Removes 6 global imports.
See #37699.

Built from https://develop.svn.wordpress.org/trunk@38303


git-svn-id: http://core.svn.wordpress.org/trunk@38244 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-08-22 04:37:28 +00:00
Drew Jaynes c3055cc190 Docs: Standardize hook docs in wp-admin/* to use third-person singular verbs per the inline documentation standards for PHP.
See #36913.

Built from https://develop.svn.wordpress.org/trunk@37488


git-svn-id: http://core.svn.wordpress.org/trunk@37456 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-05-22 18:01:30 +00:00
Dominik Schilling d8f3325c14 Docs: Correct grammar when referring to "a URL" vs "an URL" in several places.
Fixes #36218.
Built from https://develop.svn.wordpress.org/trunk@36970


git-svn-id: http://core.svn.wordpress.org/trunk@36938 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-03-12 12:39:27 +00:00
Dominik Schilling cd892b86b4 Media: In `wp_read_image_metadata()` make sure that IPTC keywords are UTF8 encoded.
Prevents missing `_wp_attachment_metadata` when an image contains keywords with latin extended characters.

Fixes #35316.
Built from https://develop.svn.wordpress.org/trunk@36429


git-svn-id: http://core.svn.wordpress.org/trunk@36396 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-01 14:53:27 +00:00
Drew Jaynes 79705d5cc1 Docs: Fix a typo in the 4.4.0 changlog entry in the `intermediate_image_sizes_advanced` hook doc.
Props morganestes.
Fixes #35190.

Built from https://develop.svn.wordpress.org/trunk@36054


git-svn-id: http://core.svn.wordpress.org/trunk@36019 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-12-21 22:24:27 +00:00
Sergey Biryukov 7ad65267b6 Media: Avoid a PHP warning in `wp_generate_attachment_metadata()` if `$metadata` is not an array.
This was previously fixed in [25968], but accidentally reverted in [32545].

Props skithund.
Fixes #34599.
Built from https://develop.svn.wordpress.org/trunk@35554


git-svn-id: http://core.svn.wordpress.org/trunk@35518 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-11-06 09:25:26 +00:00
Scott Taylor aa8c76258a After [34374], ensure that `$iptc` is defined.
See #33772.

Built from https://develop.svn.wordpress.org/trunk@34378


git-svn-id: http://core.svn.wordpress.org/trunk@34342 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-22 04:49:24 +00:00
Scott Taylor 1d513fe737 Media: In `wp_read_image_metadata()`, include IPTC Keywords when available in `$meta`.
Adds unit test.

Props swissspidy, dbru, SteveHoneyNZ.
Fixes #33772.

Built from https://develop.svn.wordpress.org/trunk@34374


git-svn-id: http://core.svn.wordpress.org/trunk@34338 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-22 04:19:24 +00:00
Scott Taylor 8cd584e6ed In `wp_generate_attachment_metadata()`, also pass `$metadata` to the `intermediate_image_sizes_advanced` filter.
Props amereservant, wonderboymusic.
Fixes #23401.

Built from https://develop.svn.wordpress.org/trunk@34007


git-svn-id: http://core.svn.wordpress.org/trunk@33976 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-10 18:04:24 +00:00
Scott Taylor b56b9b3e5c Add `@global` annotations for `wp-admin/*`.
See #32444.

Built from https://develop.svn.wordpress.org/trunk@32642


git-svn-id: http://core.svn.wordpress.org/trunk@32612 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-05-28 21:41:30 +00:00
Scott Taylor af7a017f46 When calling `unset()`, it is unnecessary to immediately precede it with a call to `isset()`.
See #32444.

Built from https://develop.svn.wordpress.org/trunk@32545


git-svn-id: http://core.svn.wordpress.org/trunk@32515 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-05-22 05:47:25 +00:00
Sergey Biryukov 19f1d4f402 EXIF/IPTC captions should populate Caption (`post_excerpt`) on upload, not Description (`post_content`).
Make sure the caption is always set if found. Previously, if the caption was less than 80 characters, only the Title field would be set.

props beaulebens, ericlewis, bendoh, SergeyBiryukov.
fixes #22768.
Built from https://develop.svn.wordpress.org/trunk@31694


git-svn-id: http://core.svn.wordpress.org/trunk@31675 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-10 05:07:28 +00:00
Scott Taylor 8f0b626d13 Introduce a function, `wp_attachment_is( $type, $post = 0 )`, to collapse the logic for determining whether an attachment is an `image`, `audio`, or `video`.
This is admittedly a first pass. There needs to be a generic handler for when any other type is passed, but for now it accepts the whitelist.

See #25275.

Built from https://develop.svn.wordpress.org/trunk@31645


git-svn-id: http://core.svn.wordpress.org/trunk@31626 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-06 20:26:26 +00:00
Sergey Biryukov 19a43125cd Don't try to read a non-existent Exif:Title tag in `wp_read_image_metadata()`, as it's not a part of the Exif standard.
props tyxla.
fixes #31043.
Built from https://develop.svn.wordpress.org/trunk@31462


git-svn-id: http://core.svn.wordpress.org/trunk@31443 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-02-14 09:14:28 +00:00
Scott Taylor 4feecb922c Use `&&` instead of `and` in the 3 places where `and` was used.
See #30799.

Built from https://develop.svn.wordpress.org/trunk@31099


git-svn-id: http://core.svn.wordpress.org/trunk@31080 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-01-08 21:12:22 +00:00
Andrew Nacin 58dfcb9bb0 Validate image data.
Built from https://develop.svn.wordpress.org/trunk@30458


git-svn-id: http://core.svn.wordpress.org/trunk@30449 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-11-20 15:25:22 +00:00
Scott Taylor 2ed316e16d Add exif `orientation` to data extracted in `wp_read_image_metadata()`.
Props shanebp.
Fixes 28916.

Built from https://develop.svn.wordpress.org/trunk@29291


git-svn-id: http://core.svn.wordpress.org/trunk@29073 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-07-24 22:14:16 +00:00
Drew Jaynes 097dc8ee15 Fix syntax for single- and multi-line comments in wp-admin-directory files.
See #28931.

Built from https://develop.svn.wordpress.org/trunk@29206


git-svn-id: http://core.svn.wordpress.org/trunk@28990 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-07-17 09:14:16 +00:00
Sergey Biryukov 8b272f4379 Remove mbstring_binary_safe_strlen(). Use mbstring_binary_safe_encoding() and reset_mbstring_encoding() directly.
fixes #28162.
Built from https://develop.svn.wordpress.org/trunk@28808


git-svn-id: http://core.svn.wordpress.org/trunk@28617 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-06-23 22:21:15 +00:00
Sergey Biryukov 9ceb642b2a Introduce a binary-safe wrapper for strlen() and use it in seems_utf8(), utf8_uri_encode(), and wp_read_image_metadata().
Use binary-safe POMO_Reader::strlen() in MO::export_to_file_handle().

fixes #28162.
Built from https://develop.svn.wordpress.org/trunk@28806


git-svn-id: http://core.svn.wordpress.org/trunk@28615 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-06-23 14:48:14 +00:00
Sergey Biryukov 84422e6d7d Add BMP to the list of displayable image types.
props ericlewis.
fixes #26808.
Built from https://develop.svn.wordpress.org/trunk@28589


git-svn-id: http://core.svn.wordpress.org/trunk@28414 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-05-27 13:25:14 +00:00
Scott Taylor 88b96dc036 In `wp_read_image_metadata()`, the values from `exif_read_data()` should only override values from `iptcparse()` that are empty.
Props SergeyBiryukov.
Fixes #23706.

Built from https://develop.svn.wordpress.org/trunk@28367


git-svn-id: http://core.svn.wordpress.org/trunk@28195 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-05-11 05:54:15 +00:00
Drew Jaynes 181fe84d47 Align parameters in the hook docs for the `attachment_thumbnail_args` filter.
See #27700.

Built from https://develop.svn.wordpress.org/trunk@27997


git-svn-id: http://core.svn.wordpress.org/trunk@27827 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-04-07 20:10:16 +00:00
Scott Taylor 7eb24edf4e In `wp_generate_attachment_metadata()`, when an audio or video files contains upload-able image bits in its ID3 tags, only upload it if the image has not already been uploaded. Determine this by checking for a `_cover_hash` value in post meta that matches the `md5` representation of the bits.
This prevents uploading an album of 10 songs and subsequently uploading 10 copies of the same album cover.

Props GregLone for the new filter/filter docs: `'attachment_thumbnail_args'`.
Fixes #27573.
 

Built from https://develop.svn.wordpress.org/trunk@27863


git-svn-id: http://core.svn.wordpress.org/trunk@27694 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-30 20:54:15 +00:00
Scott Taylor 38d1fb971f Turn on thumbnail support for `attachment:audio` and `attachment:video`. Change conditionals to check for theme OR post type support when determining whether to turn on the Featured Image UI pieces in the admin.
Fixes #27460.


Built from https://develop.svn.wordpress.org/trunk@27657


git-svn-id: http://core.svn.wordpress.org/trunk@27500 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-23 02:35:14 +00:00
Andrew Nacin fabb6d4898 Allow $crop in add_image_size() to receive crop anchors (top, left, right, bottom, center).
This also applies to set_post_thumbnail_size() and image_resize_dimensions().

props bradt, wonderboymusic, DH-Shredder.
fixes #19393.

Built from https://develop.svn.wordpress.org/trunk@27472


git-svn-id: http://core.svn.wordpress.org/trunk@27317 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-08 06:14:15 +00:00
Drew Jaynes 61538d3f5e Inline documentation for hooks in wp-admin/includes/image.php.
Props theorboman, kpdesign.
Fixes #25832.

Built from https://develop.svn.wordpress.org/trunk@27202


git-svn-id: http://core.svn.wordpress.org/trunk@27059 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-02-20 06:27:13 +00:00
Andrew Nacin d0cfa40983 Add jshintrc to qunit.
props jorbin.
see #25187.

Built from https://develop.svn.wordpress.org/trunk@25992


git-svn-id: http://core.svn.wordpress.org/trunk@25925 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-30 14:39:10 +00:00
Mark Jaquith 12d3fc7999 Add functions for generating metadata for video and audio, using the
ID3 library. Also allows themes/plugins to add thumbnail support
to these media types. Think stuff like album art, movie covers, and
video freeze-frames.

props wonderboymusic. fixes #23673

git-svn-id: http://core.svn.wordpress.org/trunk@23766 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-03-21 04:55:42 +00:00
Sergey Biryukov caf591b7aa Declare the variable before using it. props danielbachhuber. fixes #23710.
git-svn-id: http://core.svn.wordpress.org/trunk@23632 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-03-07 04:46:19 +00:00
Sergey Biryukov 2967871d34 Return WP_Error from wp_crop_image() if saving has failed. props macbrink. fixes #23325.
git-svn-id: http://core.svn.wordpress.org/trunk@23374 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-02-02 02:01:59 +00:00
Andrew Nacin 9120cf3375 WP_Image_Editor: the last stand.
* Have wp_get_image_editor() rather than WP_Image_Editor::get_instance(). Having static factory methods would be less confusing if there weren't also static methods tied to individual editor implementations.
 * Lazy-load the WP_Image_Editor base class and editor implementations.
 * Have WP_Image_Editor_GD::supports_mime_type() actually check which types it supports.
 * Deprecate gd_edit_image_support() in favor of wp_image_editor_supports().

props DH-Shredder, scribu, markoheijnen. fixes #22356. see #6821.



git-svn-id: http://core.svn.wordpress.org/trunk@22817 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-11-22 09:52:16 +00:00
Andrew Nacin f68b6006de wp_generate_attachment_metadata() should not call WP_Image_Editor if there's nothing to resize. props mdawaffe. fixes #22438.
git-svn-id: http://core.svn.wordpress.org/trunk@22571 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-11-14 14:26:52 +00:00
Ryan Boren 02d80201fa In wp_crop_image(), preserve both src_file and src. src_file must be preserved even when url fopen is used so that we don't try to save to a filename based on the url.
see #6821


git-svn-id: http://core.svn.wordpress.org/trunk@22553 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-11-13 00:03:55 +00:00
Ryan Boren 31e669df5a Pass an attachment ID, not a file path, to _load_image_to_edit_path() from wp_crop_image(). This fixes handling of attachments that require url fopen to access the image.
Allow passing urls instead of just file paths to WP_Image_Editor_Imagick::load() and WP_Image_Editor_GD::load() so that attachments requiring URL fopen can be handled.

see #6821


git-svn-id: http://core.svn.wordpress.org/trunk@22538 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-11-10 20:42:27 +00:00
Andrew Nacin f965ff1c84 Cast image metadata focal_length and shutter_speed to strings to restore previous behavior when stripslashes_deep() converted these values. Avoids rounding errors without making a determination of which digit we should round to. props jcakec. fixes #22259.
git-svn-id: http://core.svn.wordpress.org/trunk@22319 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-10-28 16:17:56 +00:00
Ryan Boren da8d7a347a Check for WP_Error return from WP_Image_Editor::get_instance().
Props markoheijnen
see #6821


git-svn-id: http://core.svn.wordpress.org/trunk@22192 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-10-11 18:59:41 +00:00
Ryan Boren b4d0be2d1a Introduce WP_Image_Editor, WP_Image_Editor_Imagick, and WP_Image_Editor_GD. Abstracts image editing API and adds support for ImageMagick.
Props DH-Shredder, kurtpayne, markoheijnen
see #6821


git-svn-id: http://core.svn.wordpress.org/trunk@22094 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-10-01 20:59:06 +00:00
Andrew Nacin 70ad7496a6 Deprecate wp_create_thumbnail(). props obenland. fixes #21555.
git-svn-id: http://core.svn.wordpress.org/trunk@21956 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-09-23 17:48:24 +00:00
Andrew Nacin 2d1eae820f Avoid mangling UTF-8 strings that may be present in image metadata. props SergeyBiryukov for the unit tests [UT665]. fixes #9417.
git-svn-id: http://core.svn.wordpress.org/trunk@21905 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-09-18 23:38:25 +00:00
Andrew Nacin 670105e1fb Remove 'hwstring_small' from attachment metadata and deprecate get_udims(). props SergeyBiryukov. fixes #21518.
git-svn-id: http://core.svn.wordpress.org/trunk@21808 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-09-11 01:38:26 +00:00
ryan bce8cd343a Make sure the path exists before copying. see #20657
git-svn-id: http://core.svn.wordpress.org/trunk@21039 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-06-10 01:26:12 +00:00
azaozz cb71d2fe62 Fix notice in wp_read_image_metadata() when EXIF ISOSpeedRatings is array, props nacin, fixes #20807
git-svn-id: http://core.svn.wordpress.org/trunk@20978 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-06-02 01:39:00 +00:00
ryan c0339644ea Shears of vigorous pinking.
git-svn-id: http://core.svn.wordpress.org/trunk@20944 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-05-27 16:25:43 +00:00
ryan b212ead08c Remove debug cruft. Fix typo. Props SergeyBiryukov. fixes #20657
git-svn-id: http://core.svn.wordpress.org/trunk@20808 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-05-16 18:11:19 +00:00
ryan a6894d0b59 Create a new attachment and make a copy of the image when selecting an image from the image library. This prevents orphaning the header if the original attachment is deleted. This also prevents stomping of meta.
Add a button to skip cropping.

Props SergeyBiryukov
Fixes #20657 #20667


git-svn-id: http://core.svn.wordpress.org/trunk@20806 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-05-16 17:47:55 +00:00
ryan 52e7e65d2d Make the file names unique for cropped header images. Props SergeyBiryukov. fixes #20666
git-svn-id: http://core.svn.wordpress.org/trunk@20787 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-05-14 17:53:03 +00:00
ryan 61ffb70037 Don't convert png to jpg when cropping a header. Prevents stomping transparency. Props SergeyBiryukov, kovshenin. fixes #20555
git-svn-id: http://core.svn.wordpress.org/trunk@20706 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-05-02 21:35:56 +00:00
ryan 54b3b79dea Use correct var name. Props mattonomics. fixes #20432
git-svn-id: http://svn.automattic.com/wordpress/trunk@20454 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-04-12 21:02:24 +00:00
ryan a7f2d67f6d Make choosing a header image from the media library play nicely with file replication plugins that do not guarantee images will be retained in the local filesystem.
* When passing an attachment ID to wp_crop_image(), use load_image_to_edit() to fetch the image via a url fopen when the image does not exist in the filesystem.
* Move load_image_to_edit() to wp-admin/includes/image.php so that it is always available for admin pages loads.
* Fallback to the height and width stored in the attachment meta when the image no longer exists in the filesystem.

see #19840


git-svn-id: http://svn.automattic.com/wordpress/trunk@20384 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-04-06 20:47:24 +00:00
ryan 83b131f8e3 User lowercase true, false, null instead of uppercase. Props c3mdigital, mfields. fixes #16302
git-svn-id: http://svn.automattic.com/wordpress/trunk@19687 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-01-05 20:50:54 +00:00
ryan 07ff8b216b Use one space, not two, after trailing punctuation. fixes #19537
git-svn-id: http://svn.automattic.com/wordpress/trunk@19593 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2011-12-13 23:45:31 +00:00
duck_ c1d1590171 Fix typos in documentation (wp-admin/). See #18560.
git-svn-id: http://svn.automattic.com/wordpress/trunk@18632 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2011-09-03 14:18:10 +00:00
dd32 bf6510abd1 Fix image_resize() dependencies by moving wp_load_image() from admin includes to wp-includes. Fixes #7279
git-svn-id: http://svn.automattic.com/wordpress/trunk@13860 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2010-03-28 03:39:00 +00:00
nacin 39605976b1 Use utf8_encode() consistently in wp_read_image_metadata(). Also add some whitespace. props miqrogroove, see #11417, see #12095
git-svn-id: http://svn.automattic.com/wordpress/trunk@13249 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2010-02-20 12:09:30 +00:00
nacin f58329a718 Improved IPTC and EXIF handling. Drag a wider net and also try to avoid numeric attachment slugs where possible. Props miqrogroove. See #11417
git-svn-id: http://svn.automattic.com/wordpress/trunk@13244 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2010-02-20 09:17:34 +00:00