{"id":19967,"date":"2015-11-02T19:57:20","date_gmt":"2015-11-02T18:57:20","guid":{"rendered":"https:\/\/www.modelical.com\/como-automatizar-photoshop-a-fondo\/"},"modified":"2024-07-23T17:18:25","modified_gmt":"2024-07-23T15:18:25","slug":"como-automatizar-photoshop-a-fondo","status":"publish","type":"post","link":"https:\/\/www.modelical.com\/es\/como-automatizar-photoshop-a-fondo\/","title":{"rendered":"Automatizar Photoshop &#8211; A fondo"},"content":{"rendered":"<h3>De d\u00f3nde venimos<\/h3>\n<p>Se que la anterior entrega de &#8220;C\u00f3mo Automatizar Photoshop&#8221; no tuvo muy buena acogida. El hecho de que nadie se la haya le\u00eddo, y que la informaci\u00f3n de\u00a0Google Trends sea en este caso esclarecedora, no ha sido motivo suficiente para doblegar mi voluntad. Es lo absurdo de mi voluntad lo que me anima a seguir hacia delante. O hacia los lados. O para atr\u00e1s. O quedarme quieto. Seguir en definitiva, aunque sea parado. Porque puedo seguir sin moverme. Incluso puedo desplazarme sin moverme. Pero eso podr\u00eda ser el motivo de un nuevo post, ya veremos.<\/p>\n<p><img decoding=\"async\" width=\"1067\" height=\"793\" class=\"wp-image-18063 size-full\" src=\"https:\/\/www.modelical.com\/wp-content\/uploads\/2014\/09\/trend.png\" alt=\"\" srcset=\"https:\/\/www.modelical.com\/wp-content\/uploads\/2014\/09\/trend.png 1067w, https:\/\/www.modelical.com\/wp-content\/uploads\/2014\/09\/trend-480x357.png 480w, https:\/\/www.modelical.com\/wp-content\/uploads\/2014\/09\/trend-768x571.png 768w\" sizes=\"(max-width: 1067px) 100vw, 1067px\" \/> La cruda realidad<\/p>\n<p>Y ese pico no es por mi \ud83d\ude41<\/p>\n<p>El primer cap\u00edtulo nos introduc\u00eda un poco en el manejo del entorno de desarrollo para Photoshop, con un ejemplo sencillo. Dec\u00edamos ayer, el ejemplo podr\u00eda haberse llevado a cabo seguramente con una acci\u00f3n de Photoshop, sin tener que aprehender nada de programaci\u00f3n. Y esto era premeditado. Ahora vamos a complicar el objetivo de nuestro script, pero partiendo del c\u00f3digo anterior.<\/p>\n<h3>A d\u00f3nde vamos<\/h3>\n<p>A\u00f1adamos dos requisitos para nuestro script:<\/p>\n<ul>\n<li>Obtener como im\u00e1genes de salida varias relaciones de aspecto de la imagen de partida.<\/li>\n<li>Que las im\u00e1genes de salida se salven en JPEG s\u00f3lo si la imagen de entrada era JPEG, de otro modo, guardamos en PNG.<\/li>\n<\/ul>\n<p>Como veis, estos requisitos ya son bastante m\u00e1s dif\u00edciles de satisfacer solo con acciones.<\/p>\n<p>Empezamos modificando nuestro script, a\u00f1adiendo un array con las relaciones de aspecto que queremos como salida:<\/p>\n<pre class=\"lang:js decode:true\">var aspectRatio = [ [ 1, 1 ], [ 4, 3 ], [ 16, 9 ] ];<\/pre>\n<p>Aqu\u00ed podremos a\u00f1adir m\u00e1s relaciones de aspecto que nos puedan interesar, 5:4, 16:10, o eliminar las que no nos interesen. \u00bfQui\u00e9n es el obtuso ahora?<\/p>\n<p>Ahora bien. Vamos a recortar nuestra imagen, asi que tenemos que calcular las nuevas dimensiones. Pero alto, \u00e1vido programador, detenga su avance, meditemos juntos. He hecho este bonito gr\u00e1fico. Me gustan los gr\u00e1ficos. Espero que nos sirva para aclararnos.<\/p>\n<p><img decoding=\"async\" width=\"1000\" height=\"750\" class=\"wp-image-18062 size-full\" src=\"https:\/\/www.modelical.com\/wp-content\/uploads\/2014\/09\/ar-e1485621688579.png\" alt=\"Es bonito\" srcset=\"https:\/\/www.modelical.com\/wp-content\/uploads\/2014\/09\/ar-e1485621688579.png 1000w, https:\/\/www.modelical.com\/wp-content\/uploads\/2014\/09\/ar-e1485621688579-480x360.png 480w, https:\/\/www.modelical.com\/wp-content\/uploads\/2014\/09\/ar-e1485621688579-768x576.png 768w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/> Un gr\u00e1fico bonito (siento el texto en ingl\u00e9s)<\/p>\n<p>Esto nos quiere decir, que tenemos que tener en cuenta la relaci\u00f3n de aspecto de la imagen de partida, para saber por donde tenemos que recortar. Como ver\u00e9is estamos presuponiendo que la imagen la vamos a dejar centrada siempre. No quer\u00eda adelantarme, pero en nuestro pr\u00f3ximo cap\u00edtulo, vamos a ver como podemos hacer algo para &#8220;escoger&#8221; si centrar la imagen o seleccionar otras opciones&#8230; \u00bfQui\u00e9n es el obtuso ahora?<\/p>\n<p>Plasmemos esto en c\u00f3digo por favor:<\/p>\n<pre class=\"lang:js decode:true\">var imageAspectRatio = doc.width \/ doc.height;\r\nvar currentAspectRatio = aspectRatio[j][0] \/ aspectRatio[j][1];\r\n\r\nvar tImageWidth = imageWidth;\r\nvar tImageHeight = imageHeight;\r\n\r\nif(  imageAspectRatio &gt; currentAspectRatio ) {\r\n\ttImageWidth = Math.round( aspectRatio[j][0] * imageHeight \/ aspectRatio[j][1] );\r\n} else {\r\n\ttImageHeight = Math.round( aspectRatio[j][1] * imageWidth \/ aspectRatio[j][0] );\r\n}<\/pre>\n<p>Intentando explicarlo con un lenguaje m\u00e1s humano, aunque inherentemente m\u00e1s impreciso, si la imagen de partida tiene una relaci\u00f3n mayor (es decir que es aun m\u00e1s estirada que nuestra relaci\u00f3n objetivo), lo que tendremos que recortar es el ancho de la imagen. En caso contrario, es la altura lo que vamos a reducir.<\/p>\n<p>Pasamos a recortar la imagen, y a redimensionarla, recordad, a nuestra altura objetivo:<\/p>\n<pre class=\"lang:js decode:true\">doc.resizeCanvas( tImageWidth, tImageHeight, AnchorPosition.MIDDLECENTER );\r\n\r\nvar outputName = filePath + \"\/\" + fileName;\r\n\r\nvar fileSuffix = \"_\" + aspectRatio[j][0] + \"x\" + aspectRatio[j][1];\r\n\r\nif( imageHeight &gt; targetHeight ) {\r\n\tvar tWidth = Math.round( aspectRatio[j][0] * targetHeight \/ aspectRatio[j][1] );\r\n\tdoc.resizeImage( tWidth, targetHeight );\r\n\t\r\n\tvar fileName = getFileName( doc );\r\n\r\n\tfileSuffix += \"_\" + targetHeight;\r\n}\r\n\t\r\nfileName.name += fileSuffix;\r\nsaveFile( doc, fileName );<\/pre>\n<p>Aqu\u00ed hemos introducido el uso de la funci\u00f3n <span class=\"lang:c# decode:true crayon-inline\">resizeCanvas<\/span>, que como veis toma tres argumentos, que son, ancho, alto y el punto de anclaje. En este cap\u00edtulo el punto de anclaje lo vamos a dejar fijo<\/p>\n<p>A la vez vamos creando una variable para a\u00f1adir sufijos al archivo de imagen de salida, con informaci\u00f3n que luego nos permita identificar la relaci\u00f3n de aspecto del mismo. Notad tambi\u00e9n que la variable <span class=\"lang:js decode:true crayon-inline\">fileName<\/span>, es un pseudo objeto, con dos campos, <span class=\"lang:js decode:true crayon-inline\">name<\/span>\u00a0y <span class=\"lang:js decode:true crayon-inline\">extension<\/span>.<\/p>\n<p>Para cumplir nuestro segundo objetivo, salvar como JPEG solo si la fuente era JPEG, y salvar en PNG en otro caso, vamos a tener que cambiar la funci\u00f3n <span class=\"lang:js decode:true crayon-inline\">saveFile<\/span>\u00a0que creamos en la anterior entrega:<\/p>\n<pre class=\"lang:js decode:true \">function saveFile( doc, fileName ) {\r\n    if( fileName.extension == \".jpg\" || fileName.extension == \".jpeg\" ) {\r\n        fileName.name += \".jpg\";\r\n        var jpegOptions = new JPEGSaveOptions();\r\n        jpegOptions.quality = 10;\r\n        jpegOptions.embedColorProfile = true;\r\n        doc.saveAs( File( fileName.name ), jpegOptions, true );\r\n    } else {\r\n        fileName.name += \".png\";\r\n        var pngOptions = new PNGSaveOptions();\r\n        pngOptions.compression = 9;\r\n        doc.saveAs( File( fileName.name ), pngOptions, true );\r\n    }\r\n}<\/pre>\n<p>Como veis, hay una parte calcada a la del cap\u00edtulo anterior, la referente a salvar en JPEG. La parte que salva en PNG, es muy parecida, pero llamando a otras funciones.<\/p>\n<p>\u00a1Y eso es todo! Veamos como queda todo junto:<\/p>\n<pre class=\"lang:js decode:true\">var targetHeight = 512;\r\nvar aspectRatio = [ [ 1, 1 ], [ 4, 3 ], [ 16, 9 ] ];\r\n\r\nfor (var i = 0; i &lt; app.documents.length; i++) {\r\n\tvar doc = app.documents[i];\r\n\tapp.activeDocument = doc;\r\n\tvar imageWidth = doc.width;\r\n\tvar imageHeight = doc.height;\r\n\tvar imageAspectRatio = doc.width \/ doc.height;\r\n    \r\n    for (var j = 0; j &lt; aspectRatio.length; j++) {\r\n        var currentAspectRatio = aspectRatio[j][0] \/ aspectRatio[j][1];\r\n\r\n        var tImageWidth = imageWidth;\r\n        var tImageHeight = imageHeight;\r\n\r\n        if(  imageAspectRatio &gt; currentAspectRatio ) {\r\n            tImageWidth = Math.round( aspectRatio[j][0] * imageHeight \/ aspectRatio[j][1] );\r\n        } else {\r\n            tImageHeight = Math.round( aspectRatio[j][1] * imageWidth \/ aspectRatio[j][0] );\r\n        }\r\n    \r\n        doc.resizeCanvas( tImageWidth, tImageHeight, anchorPosition );\r\n\r\n        var outputName = filePath + \"\/\" + fileName;\r\n\r\n        var fileSuffix = \"_\" + aspectRatio[j][0] + \"x\" + aspectRatio[j][1];\r\n\r\n        if( imageHeight &gt; targetHeight ) {\r\n            var tWidth = Math.round( aspectRatio[j][0] * targetHeight \/ aspectRatio[j][1] );\r\n            doc.resizeImage( tWidth, targetHeight );\r\n            \r\n            var fileName = getFileName( doc );\r\n\r\n            fileName.name += \"_\" + targetHeight;\r\n        }\r\n            \r\n        fileName.name += fileSuffix;\r\n        saveFile( doc, fileName );\r\n    }\r\n}\r\n\r\nfunction getFileName( doc ) {\r\n    var filePath = doc.path.toString();\r\n    var fileName = doc.name.toString();\r\n\r\n    var lastDot = fileName.lastIndexOf( \".\" );\r\n    if ( lastDot == -1 ) {\r\n        lastDot = fileName.length;\r\n    }\r\n\r\n    var fileExtension = fileName.substr( lastDot );\r\n    var fileName = fileName.substr( 0, lastDot );\r\n\r\n    var outputName = filePath + \"\/\" + fileName;\r\n\r\n    return { name: outputName, extension: fileExtension };\r\n}\r\n\r\nfunction saveFile( doc, fileName ) {\r\n    if( fileName.extension == \".jpg\" || fileName.extension == \".jpeg\" ) {\r\n        fileName.name += \".jpg\";\r\n        var jpegOptions = new JPEGSaveOptions();\r\n        jpegOptions.quality = 10;\r\n        jpegOptions.embedColorProfile = true;\r\n        doc.saveAs( File( fileName.name ), jpegOptions, true );\r\n    } else {\r\n        fileName.name += \".png\";\r\n        var pngOptions = new PNGSaveOptions();\r\n        pngOptions.compression = 9;\r\n        doc.saveAs( File( fileName.name ), pngOptions, true );\r\n    }\r\n}\r\n<\/pre>\n<h3>Qui\u00e9nes somos<\/h3>\n<p>En el pr\u00f3ximo cap\u00edtulo introduciremos una nueva herramienta, de la que ya hablamos en el primer capitulo, el plugin para Photoshop que nos permite volcar nuestras acciones en la interfaz como una serie de comandos JavaScript, y haremos uso de ella para personalizar lo que queremos hacer. Tambi\u00e9n hablaremos un poco de cuadro de dialogo personalizados y tal. Porque a veces necesitamos la interacci\u00f3n humana. Ese calor humano que nuestro animal, ese que llevamos dentro nos exige de vez en cuando (a algunos m\u00e1s a menudo que otros, y a otros casi nunca).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>De d\u00f3nde venimos Se que la anterior entrega de &#8220;C\u00f3mo Automatizar Photoshop&#8221; no tuvo muy buena acogida. El hecho de que nadie se la haya le\u00eddo, y que la informaci\u00f3n de\u00a0Google Trends sea en este caso esclarecedora, no ha sido motivo suficiente para doblegar mi voluntad. Es lo absurdo de mi voluntad lo que me [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":27100,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[704],"tags":[793],"class_list":["post-19967","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-guias","tag-tecnologia-otros"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Automatizar Photoshop - A fondo - Modelical<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.modelical.com\/es\/como-automatizar-photoshop-a-fondo\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Automatizar Photoshop - A fondo - Modelical\" \/>\n<meta property=\"og:description\" content=\"De d\u00f3nde venimos Se que la anterior entrega de &#8220;C\u00f3mo Automatizar Photoshop&#8221; no tuvo muy buena acogida. El hecho de que nadie se la haya le\u00eddo, y que la informaci\u00f3n de\u00a0Google Trends sea en este caso esclarecedora, no ha sido motivo suficiente para doblegar mi voluntad. Es lo absurdo de mi voluntad lo que me [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.modelical.com\/es\/como-automatizar-photoshop-a-fondo\/\" \/>\n<meta property=\"og:site_name\" content=\"Modelical\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Modelical\/\" \/>\n<meta property=\"article:published_time\" content=\"2015-11-02T18:57:20+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-07-23T15:18:25+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.modelical.com\/wp-content\/uploads\/2015\/11\/Posts_29_PS-400x250-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"400\" \/>\n\t<meta property=\"og:image:height\" content=\"250\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Juan Manuel Perez\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@modelical\" \/>\n<meta name=\"twitter:site\" content=\"@modelical\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Juan Manuel Perez\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.modelical.com\\\/es\\\/como-automatizar-photoshop-a-fondo\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.modelical.com\\\/es\\\/como-automatizar-photoshop-a-fondo\\\/\"},\"author\":{\"name\":\"Juan Manuel Perez\",\"@id\":\"https:\\\/\\\/www.modelical.com\\\/es\\\/#\\\/schema\\\/person\\\/c9c2467429fc6feb888f8bd2300b70de\"},\"headline\":\"Automatizar Photoshop &#8211; A fondo\",\"datePublished\":\"2015-11-02T18:57:20+00:00\",\"dateModified\":\"2024-07-23T15:18:25+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.modelical.com\\\/es\\\/como-automatizar-photoshop-a-fondo\\\/\"},\"wordCount\":766,\"image\":{\"@id\":\"https:\\\/\\\/www.modelical.com\\\/es\\\/como-automatizar-photoshop-a-fondo\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.modelical.com\\\/wp-content\\\/uploads\\\/2015\\\/11\\\/Posts_29_PS-400x250-1.jpg\",\"keywords\":[\"Tec Otros\"],\"articleSection\":[\"Guias\"],\"inLanguage\":\"es\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.modelical.com\\\/es\\\/como-automatizar-photoshop-a-fondo\\\/\",\"url\":\"https:\\\/\\\/www.modelical.com\\\/es\\\/como-automatizar-photoshop-a-fondo\\\/\",\"name\":\"Automatizar Photoshop - A fondo - Modelical\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.modelical.com\\\/es\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.modelical.com\\\/es\\\/como-automatizar-photoshop-a-fondo\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.modelical.com\\\/es\\\/como-automatizar-photoshop-a-fondo\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.modelical.com\\\/wp-content\\\/uploads\\\/2015\\\/11\\\/Posts_29_PS-400x250-1.jpg\",\"datePublished\":\"2015-11-02T18:57:20+00:00\",\"dateModified\":\"2024-07-23T15:18:25+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.modelical.com\\\/es\\\/#\\\/schema\\\/person\\\/c9c2467429fc6feb888f8bd2300b70de\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.modelical.com\\\/es\\\/como-automatizar-photoshop-a-fondo\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/www.modelical.com\\\/es\\\/como-automatizar-photoshop-a-fondo\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.modelical.com\\\/wp-content\\\/uploads\\\/2015\\\/11\\\/Posts_29_PS-400x250-1.jpg\",\"contentUrl\":\"https:\\\/\\\/www.modelical.com\\\/wp-content\\\/uploads\\\/2015\\\/11\\\/Posts_29_PS-400x250-1.jpg\",\"width\":400,\"height\":250},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.modelical.com\\\/es\\\/#website\",\"url\":\"https:\\\/\\\/www.modelical.com\\\/es\\\/\",\"name\":\"Modelical\",\"description\":\"We build information\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.modelical.com\\\/es\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.modelical.com\\\/es\\\/#\\\/schema\\\/person\\\/c9c2467429fc6feb888f8bd2300b70de\",\"name\":\"Juan Manuel Perez\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/945465eff02d16d8d02a0853f9d484ad26660cf20c44978db2c7bae51957c5d0?s=96&d=initials&r=g&initials=ju\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/945465eff02d16d8d02a0853f9d484ad26660cf20c44978db2c7bae51957c5d0?s=96&d=initials&r=g&initials=ju\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/945465eff02d16d8d02a0853f9d484ad26660cf20c44978db2c7bae51957c5d0?s=96&d=initials&r=g&initials=ju\",\"caption\":\"Juan Manuel Perez\"},\"url\":\"https:\\\/\\\/www.modelical.com\\\/es\\\/author\\\/juanma\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Automatizar Photoshop - A fondo - Modelical","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.modelical.com\/es\/como-automatizar-photoshop-a-fondo\/","og_locale":"es_ES","og_type":"article","og_title":"Automatizar Photoshop - A fondo - Modelical","og_description":"De d\u00f3nde venimos Se que la anterior entrega de &#8220;C\u00f3mo Automatizar Photoshop&#8221; no tuvo muy buena acogida. El hecho de que nadie se la haya le\u00eddo, y que la informaci\u00f3n de\u00a0Google Trends sea en este caso esclarecedora, no ha sido motivo suficiente para doblegar mi voluntad. Es lo absurdo de mi voluntad lo que me [&hellip;]","og_url":"https:\/\/www.modelical.com\/es\/como-automatizar-photoshop-a-fondo\/","og_site_name":"Modelical","article_publisher":"https:\/\/www.facebook.com\/Modelical\/","article_published_time":"2015-11-02T18:57:20+00:00","article_modified_time":"2024-07-23T15:18:25+00:00","og_image":[{"width":400,"height":250,"url":"https:\/\/www.modelical.com\/wp-content\/uploads\/2015\/11\/Posts_29_PS-400x250-1.jpg","type":"image\/jpeg"}],"author":"Juan Manuel Perez","twitter_card":"summary_large_image","twitter_creator":"@modelical","twitter_site":"@modelical","twitter_misc":{"Escrito por":"Juan Manuel Perez","Tiempo de lectura":"6 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.modelical.com\/es\/como-automatizar-photoshop-a-fondo\/#article","isPartOf":{"@id":"https:\/\/www.modelical.com\/es\/como-automatizar-photoshop-a-fondo\/"},"author":{"name":"Juan Manuel Perez","@id":"https:\/\/www.modelical.com\/es\/#\/schema\/person\/c9c2467429fc6feb888f8bd2300b70de"},"headline":"Automatizar Photoshop &#8211; A fondo","datePublished":"2015-11-02T18:57:20+00:00","dateModified":"2024-07-23T15:18:25+00:00","mainEntityOfPage":{"@id":"https:\/\/www.modelical.com\/es\/como-automatizar-photoshop-a-fondo\/"},"wordCount":766,"image":{"@id":"https:\/\/www.modelical.com\/es\/como-automatizar-photoshop-a-fondo\/#primaryimage"},"thumbnailUrl":"https:\/\/www.modelical.com\/wp-content\/uploads\/2015\/11\/Posts_29_PS-400x250-1.jpg","keywords":["Tec Otros"],"articleSection":["Guias"],"inLanguage":"es"},{"@type":"WebPage","@id":"https:\/\/www.modelical.com\/es\/como-automatizar-photoshop-a-fondo\/","url":"https:\/\/www.modelical.com\/es\/como-automatizar-photoshop-a-fondo\/","name":"Automatizar Photoshop - A fondo - Modelical","isPartOf":{"@id":"https:\/\/www.modelical.com\/es\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.modelical.com\/es\/como-automatizar-photoshop-a-fondo\/#primaryimage"},"image":{"@id":"https:\/\/www.modelical.com\/es\/como-automatizar-photoshop-a-fondo\/#primaryimage"},"thumbnailUrl":"https:\/\/www.modelical.com\/wp-content\/uploads\/2015\/11\/Posts_29_PS-400x250-1.jpg","datePublished":"2015-11-02T18:57:20+00:00","dateModified":"2024-07-23T15:18:25+00:00","author":{"@id":"https:\/\/www.modelical.com\/es\/#\/schema\/person\/c9c2467429fc6feb888f8bd2300b70de"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.modelical.com\/es\/como-automatizar-photoshop-a-fondo\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.modelical.com\/es\/como-automatizar-photoshop-a-fondo\/#primaryimage","url":"https:\/\/www.modelical.com\/wp-content\/uploads\/2015\/11\/Posts_29_PS-400x250-1.jpg","contentUrl":"https:\/\/www.modelical.com\/wp-content\/uploads\/2015\/11\/Posts_29_PS-400x250-1.jpg","width":400,"height":250},{"@type":"WebSite","@id":"https:\/\/www.modelical.com\/es\/#website","url":"https:\/\/www.modelical.com\/es\/","name":"Modelical","description":"We build information","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.modelical.com\/es\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/www.modelical.com\/es\/#\/schema\/person\/c9c2467429fc6feb888f8bd2300b70de","name":"Juan Manuel Perez","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/945465eff02d16d8d02a0853f9d484ad26660cf20c44978db2c7bae51957c5d0?s=96&d=initials&r=g&initials=ju","url":"https:\/\/secure.gravatar.com\/avatar\/945465eff02d16d8d02a0853f9d484ad26660cf20c44978db2c7bae51957c5d0?s=96&d=initials&r=g&initials=ju","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/945465eff02d16d8d02a0853f9d484ad26660cf20c44978db2c7bae51957c5d0?s=96&d=initials&r=g&initials=ju","caption":"Juan Manuel Perez"},"url":"https:\/\/www.modelical.com\/es\/author\/juanma\/"}]}},"_links":{"self":[{"href":"https:\/\/www.modelical.com\/es\/wp-json\/wp\/v2\/posts\/19967","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.modelical.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.modelical.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.modelical.com\/es\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.modelical.com\/es\/wp-json\/wp\/v2\/comments?post=19967"}],"version-history":[{"count":0,"href":"https:\/\/www.modelical.com\/es\/wp-json\/wp\/v2\/posts\/19967\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.modelical.com\/es\/wp-json\/wp\/v2\/media\/27100"}],"wp:attachment":[{"href":"https:\/\/www.modelical.com\/es\/wp-json\/wp\/v2\/media?parent=19967"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.modelical.com\/es\/wp-json\/wp\/v2\/categories?post=19967"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.modelical.com\/es\/wp-json\/wp\/v2\/tags?post=19967"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}