Die Zwischenbilderzeugung ist extrem starr. image_resize()
Hält es dicht am Code und hat keine Haken.
Die einzige Möglichkeit dafür ist, sich in ein wp_generate_attachment_metadata
WP-generiertes Bild einzuklinken und es mit Ihrem eigenen zu überschreiben (was ein wenig von einer image_resize()
Gabelung erfordert ).
Ich benötige dies für die Arbeit, damit ich später möglicherweise Code freigeben kann.
Ok, hier ist ein grobes, aber funktionierendes Beispiel. Beachten Sie, dass zum Einrichten des Ernteguts das Verständnis von erforderlich ist imagecopyresampled()
.
add_filter('wp_generate_attachment_metadata', 'custom_crop');
function custom_crop($metadata) {
$uploads = wp_upload_dir();
$file = path_join( $uploads['basedir'], $metadata['file'] ); // original image file
list( $year, $month ) = explode( '/', $metadata['file'] );
$target = path_join( $uploads['basedir'], "{$year}/{$month}/".$metadata['sizes']['medium']['file'] ); // intermediate size file
$image = imagecreatefromjpeg($file); // original image resource
$image_target = wp_imagecreatetruecolor( 44, 44 ); // blank image to fill
imagecopyresampled($image_target, $image, 0, 0, 25, 15, 44, 44, 170, 170); // crop original
imagejpeg($image_target, $target, apply_filters( 'jpeg_quality', 90, 'image_resize' )); // write cropped to file
return $metadata;
}