plugin updates
This commit is contained in:
@@ -291,7 +291,26 @@ function wp_create_image_subsizes( $file, $attachment_id ) {
|
||||
* If the original image's dimensions are over the threshold,
|
||||
* scale the image and use it as the "full" size.
|
||||
*/
|
||||
$scale_down = false;
|
||||
$convert = false;
|
||||
|
||||
if ( $threshold && ( $image_meta['width'] > $threshold || $image_meta['height'] > $threshold ) ) {
|
||||
// The image will be converted if needed on saving.
|
||||
$scale_down = true;
|
||||
} else {
|
||||
// The image may need to be converted regardless of its dimensions.
|
||||
$output_format = wp_get_image_editor_output_format( $file, $imagesize['mime'] );
|
||||
|
||||
if (
|
||||
is_array( $output_format ) &&
|
||||
array_key_exists( $imagesize['mime'], $output_format ) &&
|
||||
$output_format[ $imagesize['mime'] ] !== $imagesize['mime']
|
||||
) {
|
||||
$convert = true;
|
||||
}
|
||||
}
|
||||
|
||||
if ( $scale_down || $convert ) {
|
||||
$editor = wp_get_image_editor( $file );
|
||||
|
||||
if ( is_wp_error( $editor ) ) {
|
||||
@@ -299,14 +318,20 @@ function wp_create_image_subsizes( $file, $attachment_id ) {
|
||||
return $image_meta;
|
||||
}
|
||||
|
||||
// Resize the image.
|
||||
$resized = $editor->resize( $threshold, $threshold );
|
||||
if ( $scale_down ) {
|
||||
// Resize the image. This will also convet it if needed.
|
||||
$resized = $editor->resize( $threshold, $threshold );
|
||||
} elseif ( $convert ) {
|
||||
// The image will be converted (if possible) when saved.
|
||||
$resized = true;
|
||||
}
|
||||
|
||||
$rotated = null;
|
||||
|
||||
// If there is EXIF data, rotate according to EXIF Orientation.
|
||||
if ( ! is_wp_error( $resized ) && is_array( $exif_meta ) ) {
|
||||
$resized = $editor->maybe_exif_rotate();
|
||||
$rotated = $resized;
|
||||
$rotated = $resized; // bool true or WP_Error
|
||||
}
|
||||
|
||||
if ( ! is_wp_error( $resized ) ) {
|
||||
@@ -314,7 +339,23 @@ function wp_create_image_subsizes( $file, $attachment_id ) {
|
||||
* Append "-scaled" to the image file name. It will look like "my_image-scaled.jpg".
|
||||
* This doesn't affect the sub-sizes names as they are generated from the original image (for best quality).
|
||||
*/
|
||||
$saved = $editor->save( $editor->generate_filename( 'scaled' ) );
|
||||
if ( $scale_down ) {
|
||||
$saved = $editor->save( $editor->generate_filename( 'scaled' ) );
|
||||
} elseif ( $convert ) {
|
||||
/*
|
||||
* Generate a new file name for the converted image.
|
||||
*
|
||||
* As the image file name will be unique due to the changed file extension,
|
||||
* it does not need a suffix to be unique. However, the generate_filename method
|
||||
* does not allow for an empty suffix, so the "-converted" suffix is required to
|
||||
* be added and subsequently removed.
|
||||
*/
|
||||
$converted_file_name = $editor->generate_filename( 'converted' );
|
||||
$converted_file_name = preg_replace( '/(-converted\.)([a-z0-9]+)$/i', '.$2', $converted_file_name );
|
||||
$saved = $editor->save( $converted_file_name );
|
||||
} else {
|
||||
$saved = $editor->save();
|
||||
}
|
||||
|
||||
if ( ! is_wp_error( $saved ) ) {
|
||||
$image_meta = _wp_image_meta_replace_original( $saved, $file, $image_meta, $attachment_id );
|
||||
@@ -543,6 +584,7 @@ function wp_copy_parent_attachment_properties( $cropped, $parent_attachment_id,
|
||||
*
|
||||
* @since 2.1.0
|
||||
* @since 6.0.0 The `$filesize` value was added to the returned array.
|
||||
* @since 6.7.0 The 'image/heic' mime type is supported.
|
||||
*
|
||||
* @param int $attachment_id Attachment ID to process.
|
||||
* @param string $file Filepath of the attached image.
|
||||
@@ -555,7 +597,7 @@ function wp_generate_attachment_metadata( $attachment_id, $file ) {
|
||||
$support = false;
|
||||
$mime_type = get_post_mime_type( $attachment );
|
||||
|
||||
if ( preg_match( '!^image/!', $mime_type ) && file_is_displayable_image( $file ) ) {
|
||||
if ( 'image/heic' === $mime_type || ( preg_match( '!^image/!', $mime_type ) && file_is_displayable_image( $file ) ) ) {
|
||||
// Make thumbnails and other intermediate sizes.
|
||||
$metadata = wp_create_image_subsizes( $file, $attachment_id );
|
||||
} elseif ( wp_attachment_is( 'video', $attachment ) ) {
|
||||
|
||||
Reference in New Issue
Block a user