web-dev-qa-db-fra.com

Pourquoi ne puis-je pas modifier certaines images de la bibliothèque WordPress Media?

J'ai remarqué un comportement bizarre dans mon installation WordPress.

Pour certaines photos, lorsque je clique sur "Modifier l'image", l'image complète ne m'est pas affichée, mais uniquement la zone visible dans la vignette. Et pourtant, si vous cliquez sur "Afficher l'image", vous pouvez voir que l'image complète est réellement là.

Clearly needs some fixing

De toute évidence, une intervention manuelle est nécessaire pour la vignette de cette photo.

Edit Image shows same weird crop

Cliquez sur éditer l'image, seulement pour trouver que l'image entière ne m'est pas présentée pour le recadrage/édition. L'image a-t-elle été recadrée lors du téléchargement, peut-être?

The whole image is there

Voir la pièce jointe montre que non, toute l'image est réellement là - elle ne m'est tout simplement pas disponible dans l'éditeur d'images.

Que se passe-t-il?

Ceci n’est un problème que pour certaines photos, et je ne vois aucune différence entre elles. Il s’agit de fichiers JPG. Il n’ya pas de données EXIF ​​bizarres que je puisse voir ... et pourtant, je peux rogner certaines photos et d’autres pas. ...

2
Amanda

ce que vous décrivez ici (image rognée de grande taille dans l’écran Éditer média) est un comportement parfaitement normal lorsque vous utilisez Apply changes to: All image sizes lors du rognage d’image et que la même chose pourrait se produire lors du téléchargement lorsque $crop param est défini sur true pour toutes les tailles d’image enregistrées ( similaire à la façon dont add_image_size function fonctionne) Comme suggéré ci-dessus - désactivez les plugins liés aux images et voyez ce qui se passe.

Quoi qu'il en soit - la chose la plus étrange, c'est qu'il n'y a pas de bouton Restore Original Image dans votre capture d'écran. Ce bouton est exactement ce dont vous avez besoin pour travailler avec la taille originale dans l’éditeur.

Voir la mise à jour ci-dessous ...

Je ne peux reproduire cette image qu'après coup, mais AVANT de la sauvegarder. Le bouton Restore Original Image y apparaît dès que je reviens pour le modifier après l'avoir enregistré.

Voir ma capture d'écran: After saving it and coming back

_ {Ce n'est apparemment pas une réponse finale, mais cela ne correspond pas vraiment au format du commentaire, donc ça s'est terminé ici ...} _

UPDATE:
De en regardant la source de image-edit.php , il semble qu'un rôle crucial dans la décision d'afficher le lien 'Restaurer ..' est une valeur de _wp_attachment_backup_sizes champ post-méta d'une pièce jointe donnée. .

Je suggère de vérifier cette valeur pour les pièces jointes problématiques. Vous pouvez utiliser quelque chose comme ceci:

<pre>
<?php print_r( get_post_meta( $your_attachment_id_here, '_wp_attachment_backup_sizes', true ) ); ?>
</pre>

(ou utilisez le la console WordPress plugin)} _

Peut-être y trouverez-vous quelque chose d'étrange. Essayez également de comparer ces valeurs entre les pièces jointes brisées et correctement affichées ... Encore une fois, je sais que je ne vous donne pas la réponse que vous aimeriez entendre, mais je pense que cela pourrait être la bonne direction à suivre. À votre santé

3
Michal Mau

J'ai créé cette fonction simple pour l'obtenir.

function get_attachment_full_original($id){
    $img = pathinfo( get_attached_file($id) );
    $meta = get_post_meta($id, '_wp_attachment_backup_sizes', true);
    $orig = $meta['full-orig'];
    return str_replace(ABSPATH, get_bloginfo('url') . "/", path_join($img['dirname'], $orig['file']));
}
1
Tom Roggero

Recherchez dans vos fichiers de thème:

add_image_size( 'thumb_name', some_number, 400, true );

thumb_name et some_number pourraient être n'importe quoi. Supprimez simplement , true:

add_image_size( 'thumb_name', some_number, 400 );

Ou si vous avez besoin du mode de rognage difficile, remplacez 400 par un autre nombre (399 ou 401 convient)

add_image_size( 'thumb_name', some_number, 401, true );

J'ai passé de nombreuses heures à étudier ce problème, et c'est certainement un bogue (même dans WordPress 3.4.1). Comme le mentionne kristi, cela se produit avec des images de 400 pixels de large. Cela se produit également si votre thème ajoute une taille d'image avec une hauteur de 400 pixels et le mode de rognage dur activé. J'ai mis à jour le rapport de bogue et j'espère qu'il sera corrigé bientôt!

1
Zade

La même chose m'arrive. J'ai trouvé cette page décrivant le même problème . Il semble que cela pourrait être causé par le thème. Bien que changer de thème, not résolve le problème pour moi (et tous mes plugins sont également désactivés).

Je pense que cela ne se produit que sur mes images qui sont plus hautes que larges (orientation "portrait"). Si l'image est plus large que haute, elle sera redimensionnée pour s'adapter correctement. Il doit y avoir un bug dans l'algorithme de redimensionnement d'image de Wordpress. grrr ...

Solution de contournement ennuyeuse: modifiez l'image et changez la taille de l'image, en ajoutant un "remplissage" sur les côtés afin qu'ils soient plus larges que grands (si vous utilisez Photoshop, changez la taille de la toile, alt-ctrl-c). Ensuite, téléchargez à nouveau l'image sur WordPress.

Exécution de Wordpress 3.2.1/PHP 5.2.17/twentyeleven theme/no plugins

J'ai essayé d'exécuter l'auto "Réinstaller Wordpress" (bouton cliqué dans l'onglet Mise à jour), mais cela n'a rien changé.


Peut-être quelque chose à voir avec la taille de l'image (testé avec des images jpeg):

  • Fonctionne bien sur une image de 500 pixels x 1 000 pixels
  • Échec sur une image de 400 x 600 pixels
  • OK sur une image de 500 x 600 pixels
  • Échec sur une image de 400 x 800 pixels
  • OK sur une image de 410 x 500 pixels
  • OK sur une image de 401 x 500 pixels
  • Échec sur une image de 400 x 500 pixels
  • OK sur une image de 399 x 500 pixels
  • Échec sur une image de 400 x 380 pixels

Ne semble échouer que lorsque l'image a exactement 400 pixels de large


J'ai déposé un rapport de bogue pour cela. Espérons que les développeurs de Wordpress puissent regarder cela.

1
kristi