LazowskiAnton · Extensions

ImageSmith

Immagini proprio dove il codice le cita: ferma il puntatore su un percorso e una scheda mostra l'immagine, le sue dimensioni in pixel e la dimensione del file. Gli SVG vengono disegnati, ogni dimensione di un .ico è lì, le GIF animate si muovono — e la stessa scheda sostituisce l'anteprima in Esplora soluzioni.

Gratuito · Visual Studio 2022 e 2026 · 14 lingue dell'interfaccia · PNG, JPEG, GIF, BMP, TIFF, ICO, WebP, SVG

Perché ImageSmith

Un file XAML con miniature davanti ai percorsi delle immagini e la scheda di ImageSmith di un logo SVG

Vedi l'immagine, non il suo nome

/Assets/Icons/save.svg dice poco. ImageSmith mostra l'immagine stessa, proprio dove è scritto il percorso — in XAML, Razor, CSS, C#, JSON, file di progetto e .resx — senza aprire il file.

SVG e .ico inclusi

Visual Studio non mostra nulla per gli SVG e solo una dimensione di un'icona. ImageSmith disegna l'SVG, elenca ogni immagine contenuta in un .ico e riproduce le GIF animate.

Le immagini mancanti saltano all'occhio

Un percorso a un'immagine che non è nel progetto né su disco riceve una sottolineatura ondulata, e un'icona di applicazione senza le dimensioni che servono a Windows riceve un suggerimento — prima che un utente veda un'immagine vuota o un'icona sfocata.

Gratuito, senza vincoli

Nessun abbonamento, nessuna versione «pro», nessuna raccolta di dati, nessun messaggio nella finestra Output o all’avvio. L’unica cosa che ti chiederemo — dopo che l’avrai usata per un po’ — è una valutazione sul Marketplace. Funziona con Visual Studio 2022 e 2026, x64 e ARM64.

Funzionalità

La scheda nel codice

Ferma il puntatore sul percorso di un'immagine e la scheda si apre nella descrizione comando Informazioni rapide dell'editor. Mostra ciò che c'è nel file su disco, come lo troverebbe il progetto: un percorso relativo dalla cartella del file o dal progetto, un percorso radice dal progetto (o da wwwroot), un URI pack dal progetto di quell'assembly.

ParteCosa mostra
ImmagineL'immagine su una scacchiera (la trasparenza è visibile), le immagini piccole ingrandite con pixel nitidi, quelle grandi adattate. Tre pulsanti nell'angolo cambiano lo sfondo.
Etichetta delle dimensioniLe dimensioni in pixel e, quando lo stesso tag imposta Width o Height, quanto grande la mostra il codice: 1600 × 1000 · mostrata al 20%. Per un SVG: SVG · adattato.
DatiNome del file, dimensioni in pixel, dimensione del file, formato e DPI (quando non è 96); per un SVG il viewBox, il numero di forme e se contiene gradienti o testo; il percorso nella soluzione.
AzioniApri (in Visual Studio), Apri nell'app predefinita, Mostra in Esplora soluzioni, Copia percorso.

Scacchiera, bianco o scuro

Un logo bianco su una scheda bianca scompare. I tre pulsanti in alto a destra dell'immagine passano tra scacchiera, bianco e scuro; la scelta resta fino alla chiusura di Visual Studio. Lo sfondo con cui parte una scheda è un'opzione.

Miniature davanti ai percorsi

Ogni percorso il cui file esiste riceve davanti una piccola immagine, alta quanto la riga — come un campione di colore. Un elenco di file di icone si legge a colpo d'occhio. Disattivale per un editor più tranquillo.

Esplora soluzioni

Ferma il puntatore su un file immagine in Esplora soluzioni: la scheda di ImageSmith si apre accanto al posto dell'anteprima predefinita. Gli SVG vengono disegnati (l'anteprima predefinita non mostra nulla), un .ico mostra ogni dimensione (l'anteprima predefinita ne mostra una) e le varianti di scala dell'immagine sono allineate sotto.

Esplora soluzioni con ChartPolar_x4.png sotto il puntatore e la scheda di ImageSmith con le varianti di scala ×1, ×2, ×3 e ×4

La scheda resta mentre il puntatore è sull'elemento o sulla scheda, così si può fare clic sui suoi collegamenti — qui sono Apri, Apri nell'app predefinita, Copia percorso e Copia immagine. Si chiude quando il puntatore esce, con lo scorrimento, un tasto o un clic nell'albero.

Cartelle, file di codice e tutto ciò che ImageSmith non mostra mantengono la descrizione comando predefinita. Se un aggiornamento di Visual Studio cambia Esplora soluzioni in modo che l'elemento sotto il puntatore non si possa trovare, ImageSmith si fa da parte.

Icone (.ico)

Un file .ico contiene più immagini, una per dimensione. La scheda di un .ico le mostra tutte affiancate sulla scacchiera (le dimensioni oltre 128 px sono mostrate a 128) e una tabella con ogni dimensione, i suoi colori, se è salvata come BMP o PNG e i suoi byte.

La scheda di ImageSmith di contoso.ico: sei dimensioni da 16 a 256 e una tabella con colori, formato e byte

Fai clic su una dimensione — nella striscia o nella tabella — per selezionarla. Copia la dimensione selezionata mette quell'immagine negli Appunti.

Salva come PNG in una riga scrive quella dimensione in un file PNG; Salva tutte le dimensioni come PNG… chiede una cartella e scrive un PNG per dimensione (contoso-16.png … contoso-256.png).

SVG

I file SVG vengono disegnati — nella scheda nel codice, in Esplora soluzioni e nelle miniature — con SharpVectors. Sotto l'immagine la scheda la mostra a 16, 24, 32 e 48 px: come apparirà su un pulsante della barra degli strumenti.

I dati sono il viewBox (o larghezza × altezza quando non c'è un viewBox), la dimensione del file e il numero di forme, con gradiente e testo quando il file li contiene. Un SVG che non si può disegnare mostra la riga dell'errore al posto dell'immagine.

I file esterni e gli URL a cui fa riferimento un SVG non vengono mai caricati.

GIF animate

Una GIF animata si muove nella scheda, in ciclo, e i dati dicono quanti fotogrammi ha e quanto dura: GIF · animata, 8 fotogrammi, 0,8 s. Una GIF con un solo fotogramma resta ferma. WebP, TIFF e BMP vengono mostrati come PNG e JPEG.

Tre schede di ImageSmith: una GIF animata, un'immagine WebP e un SVG con un gradiente

Varianti di scala

Le immagini spesso esistono in più scale per gli schermi ad alta risoluzione. Quando i file stanno uno accanto all'altro, la scheda li allinea sotto l'immagine, ognuno disegnato in proporzione con la sua scala e le dimensioni in pixel (×2 · 64); quello mostrato è evidenziato da un contorno. Una scala consueta che manca è uno spazio tratteggiato.

DenominazioneEsempioSpazio tratteggiato se manca
Moltiplicatore (WinForms, progettisti di report)Chart.png, Chart_x2.png, Chart_x1_25.png, Chart_x1.5.png×1, ×2
@2x (web, iOS, React Native)Chart.png, Chart@2x.png×1, ×2
scale- (UWP, WinUI, MSIX)Logo.scale-100.png, Logo.scale-200.png100, 200
targetsize- (UWP, WinUI, MSIX)Square44x44Logo.targetsize-24.png16, 24, 32, 48
Suffisso di dimensioneicon-16.png, icon-32.png, tent-480.jpg, tent-768.jpg—

Fai clic su una variante per vederla nella stessa scheda. La riga c'è nella scheda nel codice e in Esplora soluzioni.

Cosa viene riconosciuto

Un percorso viene riconosciuto dall'estensione di un file immagine, nei punti in cui ogni linguaggio indica i file:

DoveEsempi
XAML (WPF, WinUI, MAUI, Avalonia)Source="/Assets/logo.png", pack://application:,,,/Contoso;component/Icons/save.svg, /Contoso.Icons;component/…, ms-appx:///Assets/hero.jpg, avares://Contoso.App/Assets/logo.png
Razor, Blazor e HTML<img src="~/images/tent.jpg">, srcset, <link rel="icon">, style="background: url(…)"
CSS, SCSS, LESSurl("../images/hero.webp"), url(…) without quotes, image-set(…)
C#"Assets/hero.jpg", @"Assets\splash.png", new Uri("pack://…"), Path.Combine("Assets", "logo.svg")
JSON"icon": "images/icon-192.png" (appsettings.json, manifest.json)
File di progetto<ApplicationIcon>, <Resource Include="…">, <Content Include="…">, MAUI and appxmanifest images
.resxUn ResXFileRef a un'immagine e un semplice valore stringa che è il percorso di un'immagine.
FormatiPNG, JPEG, GIF, BMP, TIFF, ICO, WebP, SVG

Gli URI pack verso un altro progetto della soluzione (/Contoso.Icons;component/Icons/save.svg, con o senza versione) vengono cercati in quel progetto. ms-appx:/// trova anche i file qualificati di UWP e WinUI (Logo.scale-200.png per Logo.png); un logo.png di MAUI trova Resources/Images/logo.svg.

Non mostrati, di proposito: URL e URI data:, binding e risorse ({Binding …}, {StaticResource …}), stringhe interpolate e percorsi costruiti da variabili, proprietà MSBuild, caratteri jolly, pack://siteoforigin: e semplici nomi di file in C# ("logo.png" potrebbe essere qualsiasi cosa).

Suggerimenti

Due tipi di suggerimenti, condivisi con la famiglia SmithWorks: ogni testo inizia con ImageSmith:, la sua descrizione comando ha Non mostrare questo tipo di suggerimento e, con LensSmith, il suggerimento compare anche alla fine della riga.

SuggerimentoQuandoTesto
Immagine non trovataUn percorso a un'immagine che non è nel progetto né su disco (una sottolineatura ondulata). URL, percorsi con variabili e semplici nomi di file nel codice non vengono controllati.ImageSmith: /Assets/banner-old.png is not in the project.
Icona senza le dimensioni consueteUn .ico di applicazione o dell'area di notifica senza 16, 32, 48 o 256 px (puntini grigi): Windows ridimensiona un'altra dimensione e l'icona appare sfocata. Le favicon non vengono controllate.ImageSmith: tray.ico has no 16 × 16 image — Windows will scale a larger one.

Ogni tipo si può disattivare in Suggerimenti nell’editor nelle impostazioni, o direttamente dal suggerimento.

Impostazioni

Strumenti › Opzioni › SmithWorks › ImageSmith. Ogni opzione ha una breve descrizione di cosa fa.

OpzionePredefinito
Anteprima al passaggio del mouseattivo
Scheda in Esplora soluzioniattivo
Miniature davanti ai percorsiattivo
Sfondo dell'anteprimaScacchiera
Suggerimenti: Immagine non trovataattivo
Suggerimenti: Icona senza le dimensioni consueteattivo
Chiedi una valutazione sul Marketplaceattivo

Le impostazioni sono salvate in %LocalAppData%\ImageSmith. Ripristina predefiniti riattiva tutto.

La pagina delle opzioni di ImageSmith
La pagina delle opzioni.

FAQ

Fermo il puntatore su un percorso e non si apre nulla. Perché?

ImageSmith mostra una scheda solo per un file che trova su disco. Controlla che il percorso termini con un'estensione di immagine e non sia costruito da variabili, un binding o un URL (questi non vengono mai mostrati). Se il file manca, il percorso dovrebbe invece avere la sottolineatura ondulata Immagine non trovata. I semplici nomi di file in C# ("logo.png") vengono saltati di proposito — lì vengono letti solo i percorsi con una cartella o un URI pack.

Perché non c'è nulla per avares://OtherAssembly/…?

Un URI avares:// o pack indica un assembly. Quando quell'assembly è un progetto della soluzione aperta, ImageSmith cerca in quel progetto. Quando proviene da un pacchetto NuGet o da una DLL referenziata, l'immagine è compilata al suo interno e non è un file su disco — quindi non c'è nulla da mostrare, e ImageSmith non la segnala nemmeno come mancante.

Il mio SVG ha uno spazio dei nomi errato o mancante. Viene disegnato?

Sì. I file salvati con xmlns="http://w3.org" o senza alcuno spazio dei nomi sono comuni; ImageSmith imposta lo spazio dei nomi SVG subito prima di disegnare, quindi la scheda mostra l'immagine. I browser potrebbero comunque rifiutare un file del genere, quindi vale la pena correggerlo.

La scheda dice che non può disegnare questo SVG. E ora?

La scheda mostra la prima riga dell'errore (ad esempio un errore XML con riga e colonna). Correggi il file e ferma di nuovo il puntatore sul percorso — un file modificato viene riletto.

Posso mantenere l'anteprima predefinita in Esplora soluzioni?

Sì — disattiva Scheda in Esplora soluzioni nelle impostazioni. La scheda nel codice resta.

Un'immagine grande rallenta l'editor?

No. Le immagini vengono decodificate in un thread in background e solo alla dimensione che serve alla scheda; le miniature vengono decodificate in piccolo. I file oltre 256 MB (SVG oltre 8 MB, ICO oltre 16 MB) mostrano i loro dati senza immagine.

ImageSmith invia qualcosa da qualche parte?

No. Legge i file immagine della tua soluzione sul tuo computer e nient'altro — nessuna telemetria, nessuna richiesta, e un SVG non carica mai nulla da Internet.

Dove segnalo un problema o propongo una funzionalità?

Apri una issue nel repository Feedback su GitHub: ci sono moduli per bug, idee e percorsi non riconosciuti (cambia i nomi privati). Puoi anche usare la scheda Q&A nel Marketplace.

Registro modifiche

1.1.0

1.0.0