A geração intermediária de imagens é extremamente rígida. image_resize()
mantém perto do código e não possui ganchos.
Praticamente a única opção para isso é conectar wp_generate_attachment_metadata
e substituir a imagem gerada pelo WP por sua própria (que precisará de um pouco de image_resize()
forquilha).
Eu preciso disso para o trabalho, para poder compartilhar algum código posteriormente.
Ok, aqui está difícil, mas trabalhando exemplo. Observe que configurar a colheita dessa maneira requer a compreensão de 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;
}
image_resize
função. Rarst estava dizendo que você precisaria se conectar ao processo de redimensionamento, mas crie manualmente os tamanhos de imagem.O codex do Wordpress tem a resposta, está abaixo.
E também o codex faz referência a uma página que mostra como as posições de corte agem.
fonte
Eu desenvolvi uma solução para esse problema que não requer hackear o núcleo: http://bradt.ca/archives/image-crop-position-in-wordpress/
Também enviei um patch para o núcleo: http://core.trac.wordpress.org/ticket/19393
Adicione-se como um Cc no ticket para mostrar seu apoio para que ele seja adicionado ao núcleo.
fonte
Você pode usar o plug-in Miniatura Posição de corte para selecionar a posição de corte de suas miniaturas.
fonte
Solução alternativa aqui: http://pixert.com/blog/cropping-post-featured-thumbnails-from-top-instead-of-center-in-wordpress-with-native-cropping-tool/
Basta adicionar esse código ao functions.php e usar o plug-in "Regenerar miniaturas" ( https://wordpress.org/plugins/regenerate-thumbnails/ ):
fonte