{"id":230844,"date":"2022-12-02T17:58:00","date_gmt":"2022-12-02T14:58:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230844"},"modified":"2022-11-10T00:15:26","modified_gmt":"2022-11-09T21:15:26","slug":"ridimensionamento-delle-immagini-in-modo-programmatico-in-wordpress","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/it\/ridimensionamento-delle-immagini-in-modo-programmatico-in-wordpress\/","title":{"rendered":"Ridimensionamento delle immagini in modo programmatico in WordPress"},"content":{"rendered":"\n<p>Se hai mai dovuto lavorare con il ridimensionamento delle immagini in modo programmatico in WordPress, potresti esserti imbattuto nella funzione <strong><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/image_resize\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">image_resize<\/a><\/strong>.<\/p>\n<p>Inoltre, potresti sapere che \u00e8 stato deprecato (dato che appare nella parte superiore dello schermo):<\/p>\n<blockquote>\n<p>Questa funzione \u00e8 stata deprecata. Usa invece <strong><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/wp_get_image_editor\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wp_get_image_editor()<\/a><\/strong>.<\/p>\n<\/blockquote>\n<p>E con la sua deprecazione, come \u00e8 vero per tutti coloro che fanno un buon lavoro deprecando la funzionalit\u00e0, non \u00e8 senza la sua sostituzione.<\/p>\n<p>In questo caso, stiamo parlando del WP Image Editor. Questa \u00e8 una classe in WordPress che possiamo utilizzare per eseguire le stesse operazioni per ridimensionare le immagini in modo programmatico che una volta potevamo con la funzione originale.<\/p>\n<p>Per essere chiari, questo particolare post non \u00e8 un tutorial completo su come utilizzare il <strong><a href=\"https:\/\/developer.wordpress.org\/reference\/classes\/wp_image_editor\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\"><code>WP_Image_Editor<\/code><\/a><\/strong>.<\/p>\n<\/p>\n<p>Invece, \u00e8 una semplice guida su come usarlo per ridimensionare le immagini al posto di una funzione deprecata insieme ad alcune spiegazioni lungo il percorso su come gestire i casi in cui potrebbero esserci errori.<\/p>\n<h3>Trovare l&#8217;immagine da usare<\/h3>\n<p>A seconda di ci\u00f2 che stai facendo, potresti essere in grado di recuperare il nome del file dell&#8217;immagine da WordPress stesso; tuttavia, per questo esempio, codificher\u00f2 semplicemente il percorso di un file.<\/p>\n<p>Questo \u00e8 il modo pi\u00f9 semplice per spiegare come utilizzare la classe rispetto all&#8217;andare su una tangente per come recuperare un&#8217;immagine a livello di codice, ottenerne il percorso, inviarla alla classe dell&#8217;editor e cos\u00ec via.<\/p>\n<p>Quindi supponiamo che il percorso indicato per l&#8217;immagine sia <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/96fa8bb3af0ee6fd821b3899e82d5fdb#file-00-filename-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">qualcosa del genere:<\/a><\/strong><\/p>\n<pre><code>&lt;?php\n\n$filename = '\/Users\/tommcfarlin\/Projects\/acme\/wp-content\/uploads\/2018\/06\/original-image.jpg';\nif (!file_exists($filename)) {\n  return;\n}<\/code><\/pre>\n<p>Usandolo, lo memorizzeremo in una variabile che possiamo passare a un&#8217;altra funzione nel caso in cui desideriamo operare sul file originale pi\u00f9 volte.<\/p>\n<h3>Ottenere un&#8217;istanza dell&#8217;editor di immagini<\/h3>\n<p>Successivamente, devi ottenere un&#8217;istanza della classe dell&#8217;editor di immagini in modo da poter operare sull&#8217;immagine situata nel percorso sopra. Nella sua forma pi\u00f9 semplice, non \u00e8 altro che passare un nome di file in una funzione e quindi una matrice di argomenti.<\/p>\n<p>In questo post, non mi preoccupo della serie di argomenti, ma solo di ottenere un&#8217;istanza dell&#8217;editor con cui posso utilizzare per ridimensionare un&#8217;immagine.<\/p>\n<p>Per prendere un&#8217;istanza di detto editor, <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/96fa8bb3af0ee6fd821b3899e82d5fdb#file-01-get-editor-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">fai semplicemente questo:<\/a><\/strong><\/p>\n<pre><code>&lt;?php\n\n\/\/ Grab the editor for the filename of the image. \n$filename = '\/Users\/tommcfarlin\/Projects\/acme\/wp-content\/uploads\/2018\/06\/original-image.jpg';\nif (!file_exists($filename)) {\n  return;\n}\n\n$editor = wp_get_image_editor( $filename, array() );<\/code><\/pre>\n<p>Ci\u00f2 restituir\u00e0 un&#8217;istanza dell&#8217;editor di un&#8217;istanza di <code>**[WP_Error](https:\/\/developer.wordpress.org\/reference\/classes\/wp_error\/)**<\/code>(insieme a un messaggio di errore e altre informazioni che \u00e8 possibile utilizzare per determinare il problema). \u00c8 sempre bene verificare se il valore restituito \u00e8 un errore e <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/96fa8bb3af0ee6fd821b3899e82d5fdb#file-02-check-for-errors-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">interrompere eventuali operazioni future.<\/a><\/strong><\/p>\n<pre><code>&lt;?php\n\n\/\/ Grab the editor for the file and the size of the original image.\n$filename = '\/Users\/tommcfarlin\/Projects\/acme\/wp-content\/uploads\/2018\/06\/original-image.jpg';\nif (!file_exists($filename)) {\n  return;\n}\n\n$editor = wp_get_image_editor( $filename, array() );\nif (is_wp_error($editor)) {\n   \/\/ handle the problem however you deem necessary.\n}<\/code><\/pre>\n<p>Supponendo che non ci siano errori, tuttavia, puoi iniziare a lavorare per ridimensionare l&#8217;immagine.<\/p>\n<h3>Ridimensionamento dell&#8217;immagine<\/h3>\n<p>Fortunatamente, questo \u00e8 qualcosa che \u00e8 facile da fare. Hai bisogno di tre informazioni:<\/p>\n<ol>\n<li>larghezza,<\/li>\n<li>altezza,<\/li>\n<li>e se desideri ritagliare o meno l&#8217;immagine.<\/li>\n<\/ol>\n<p>Nella mia esperienza, ritagliare l&#8217;immagine \u00e8 quasi sempre meglio che no perch\u00e9 evita strani allungamenti o distorsioni con proporzioni strane.<\/p>\n<p>Quando ridimensiono l&#8217;immagine, mi piace sempre ottenere la dimensione corrente dell&#8217;immagine e quindi utilizzare un moltiplicatore per creare le nuove dimensioni in base alle quali voglio ridimensionare l&#8217;immagine.<\/p>\n<p>Ad esempio, diciamo che ho un&#8217;immagine e voglio ridimensionare la larghezza del 40% e l&#8217;altezza del 30%. Per fare ci\u00f2, ho bisogno di:<\/p>\n<ol>\n<li>ottenere la dimensione dell&#8217;immagine corrente,<\/li>\n<li>usa la nuova larghezza e altezza per ridimensionare l&#8217;immagine.<\/li>\n<\/ol>\n<p>A livello di programmazione, <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/96fa8bb3af0ee6fd821b3899e82d5fdb#file-03-sizing-the-image-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">questo \u00e8 il modo in cui lo faresti:<\/a><\/strong><\/p>\n<pre><code>&lt;?php\n\n\/\/ Grab the editor for the file and the size of the original image.\n$filename = '\/Users\/tommcfarlin\/Projects\/acme\/wp-content\/uploads\/2018\/06\/original-image.jpg';\nif (!file_exists($filename)) {\n  return;\n}\n\n$editor = wp_get_image_editor( $filename, array() );\nif (is_wp_error($editor)) {\n   \/\/ Handle the problem however you deem necessary.\n}\n\n\/\/ Get the dimensions for the size of the current image.\n$dimensions = $editor-&gt;get_size();\n$width = $dimensions['width'];\n$height = $dimensions['height'];\n\n\/\/ Calculate the new dimensions for the image.\n$newWidth = 0.4 * $width;\n$newHeight = 0.3 * $height;\n\n\/\/ Resize the image.\n$result = $editor-&gt;resize($newWidth, $newHeight, true);<\/code><\/pre>\n<p>Abbastanza facile da seguire, vero?<\/p>\n<h3>Salvataggio dell&#8217;immagine<\/h3>\n<p>Infine, non resta che salvare l&#8217;immagine. In questo caso, l&#8217;immagine <strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/96fa8bb3af0ee6fd821b3899e82d5fdb#file-04-saving-the-image-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">verr\u00e0 scritta<\/a><\/strong> nella directory dei caricamenti (e di solito l&#8217;anno e il mese forniti da WordPress).<\/p>\n<pre><code>&lt;?php\n\n\/\/ Grab the editor for the file and the size of the original image.\n$filename = '\/Users\/tommcfarlin\/Projects\/acme\/wp-content\/uploads\/2018\/06\/original-image.jpg';\nif (!file_exists($filename)) {\n  return;\n}\n\n$editor = wp_get_image_editor( $filename, array() );\nif (is_wp_error($editor)) {\n   \/\/ handle the problem however you deem necessary.\n}\n\n\/\/ Get the dimensions for the size of the current image.\n$dimensions = $editor-&gt;get_size();\n$width = $dimensions['width'];\n$height = $dimensions['height'];\n\n\/\/ Calculate the new dimensions for the image.\n$newWidth = 0.4 * $width;\n$newHeight = 0.3 * $height;\n\n\/\/ Resize the image.\n$result = $editor-&gt;resize($newWidth, $newHeight, true);\n\n\/\/ If there's no problem, save it; otherwise, print the problem.\nif (!is_wp_error($result)) {\n  $editor-&gt;save($editor-&gt;generate_filename());\n} else {\n   \/\/ Handle the problem however you deem necessary.\n}<\/code><\/pre>\n<p>\u00c8 quindi possibile visualizzare la versione finale ridimensionata (e denominata in modo appropriato) in base al suo output.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte di registrazione:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Questo post fornisce una guida breve e semplice su come utilizzare WP Image Editor per ridimensionare le immagini a livello di codice.<\/p>\n","protected":false},"author":1,"featured_media":163264,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[720,844,865],"tags":[1168],"class_list":["post-230844","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sviluppatore","category-tutorial","category-wordpress-6","tag-affiai-it"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/230844","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/comments?post=230844"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/230844\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media\/163264"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media?parent=230844"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/categories?post=230844"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/tags?post=230844"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}