Presentato in anteprima al Siggraph 2007, Xfile 2 è la nuova versione di un plug-in per Photoshop che permette di ridimensionare e scalare proporzionalmente le immagini in tempo reale. Detto così non sembra niente di particolarmente innovativo. Eppure il plug-in merita attenzione poiché consente di ridimensionare le foto tenendo conto del loro aspetto e mantenendo inalterate determinate caratteristiche grazie all’uso di particolare ed esclusivi algoritmi.
Normalmente, in tutti i programmi di fotoritocco, quando si ridimensiona un’immagine, si presentano sullo schermo artefatti grafici indesiderati. In Xfile, l’utente può selezionare le parti più importanti dell’immagine e indicare le aree da preservare e quelle meno importanti. L’algoritmo è in grado di tenere conto di tali indicazioni, ridimensionare le foto in base alle impostazioni e mantenere la messa a fuoco sul punto desiderato.
Il plug-in è compatibile con Photoshop (dalla versione 7 alla CS3) ed è disponibile per Mac (versione Universal binary per CPU Intel e PowerPC) e Windows. Il prezzo della versione completa è di 73,99 euro. Il prezzo dell’update è di 50 euro.
// 1. Configura l'URL e l'identificativo esatto per questo articolo
var disqus_config = function () {
this.page.url = window.location.href.split('?')[0]; // Prende l'URL pulito della pagina
this.page.identifier = window.location.pathname; // Usa il percorso come ID univoco
};
document.addEventListener("DOMContentLoaded", function() {
var disqus_shortname = 'macitynet'; // INSERISCI QUI IL TUO SHORTNAME DISQUS
var disqus_loaded = false;
function loadDisqus() {
if (!disqus_loaded) {
disqus_loaded = true;
var dsq = document.createElement('script');
dsq.type = 'text/javascript';
dsq.async = true;
dsq.setAttribute('data-timestamp', +new Date()); // Obbligatorio per le nuove policy Disqus
dsq.src = 'https://' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
}
}
// 2. Lazy load: carica quando arrivi al div
var observer = new IntersectionObserver(function(entries) {
if(entries[0].isIntersecting === true) {
loadDisqus();
observer.disconnect();
}
}, { threshold: [0] });
// Se l'elemento esiste, avvia l'osservatore
var thread = document.getElementById("disqus_thread");
if(thread) observer.observe(thread);
});