LazowskiAnton · Extensions

ImageSmith

Obrazy dokładnie tam, gdzie wspomina o nich kod: zatrzymaj wskaźnik na ścieżce, a karta pokaże obraz, jego rozmiar w pikselach i rozmiar pliku. SVG jest rysowane, wszystkie rozmiary z pliku .ico są na miejscu, animowane GIF-y się odtwarzają — a w Eksploratorze rozwiązań ta sama karta zastępuje wbudowany podgląd.

Bezpłatnie · Visual Studio 2022 i 2026 · 14 języków interfejsu · PNG, JPEG, GIF, BMP, TIFF, ICO, WebP, SVG

Dlaczego ImageSmith

Plik XAML z miniaturami przed ścieżkami do obrazów i kartą ImageSmith logo SVG

Widać obraz, a nie jego nazwę

/Assets/Icons/save.svg niewiele mówi. ImageSmith pokazuje sam obraz dokładnie tam, gdzie zapisana jest ścieżka — w XAML, Razor, CSS, C#, JSON, plikach projektów i .resx — bez otwierania pliku.

Także SVG i .ico

Visual Studio nie pokazuje nic dla SVG i tylko jeden rozmiar ikony. ImageSmith rysuje SVG, wymienia wszystkie obrazy z pliku .ico i odtwarza animowane GIF-y.

Brakujące obrazy rzucają się w oczy

Ścieżka do obrazu, którego nie ma w projekcie ani na dysku, dostaje falistą linię, a ikona aplikacji bez rozmiarów potrzebnych Windows dostaje wskazówkę — zanim użytkownik zobaczy pusty obraz lub rozmytą ikonę.

Bezpłatnie, bez haczyków

Bez subskrypcji, bez wersji „pro”, bez zbierania danych i bez komunikatów w oknie „Dane wyjściowe” ani przy uruchamianiu. Jedyne, o co kiedykolwiek poprosimy — gdy już przez jakiś czas będziesz z niego korzystać — to ocena w Marketplace. Działa w Visual Studio 2022 i 2026, x64 i ARM64.

Funkcje

Karta w kodzie

Zatrzymaj wskaźnik na ścieżce do obrazu, a karta otworzy się w etykietce Quick Info edytora. Pokazuje to, co jest w pliku na dysku, tak jak znalazłby go projekt: ścieżkę względną od folderu pliku lub projektu, ścieżkę od katalogu głównego projektu (lub wwwroot), pack URI od projektu danego zestawu.

CzęśćCo pokazuje
ObrazObraz na szachownicy (widać przezroczystość), małe obrazy powiększone z ostrymi pikselami, duże dopasowane. Trzy przyciski w rogu przełączają tło.
Plakietka rozmiaruRozmiar w pikselach, a gdy ten sam tag ustawia Width lub Height — jak duży pokazuje go kod: 1600 × 1000 · w kodzie 20%. Dla SVG: SVG · dopasowany.
InformacjeNazwa pliku, rozmiar w pikselach, rozmiar pliku, format i DPI (gdy inne niż 96); dla SVG viewBox, liczba kształtów oraz czy ma gradienty lub tekst; ścieżka w rozwiązaniu.
AkcjeOtwórz (w Visual Studio), Otwórz w aplikacji domyślnej, Pokaż w Eksploratorze rozwiązań, Kopiuj ścieżkę.

Szachownica, białe lub ciemne

Białe logo na białej karcie znika. Trzy przyciski w prawym górnym rogu obrazu przełączają szachownicę, białe i ciemne tło; wybór obowiązuje do zamknięcia Visual Studio. Tło, od którego zaczyna karta, ustawia się w opcjach.

Miniatury przed ścieżkami

Każda ścieżka do istniejącego pliku dostaje przed sobą maleńki obraz wysoki na wiersz — jak próbka koloru. Listę plików ikon można odczytać jednym spojrzeniem. Wyłącz je, by edytor był spokojniejszy.

Eksplorator rozwiązań

Zatrzymaj wskaźnik na pliku obrazu w Eksploratorze rozwiązań: obok otworzy się karta ImageSmith zamiast wbudowanego podglądu. SVG jest rysowane (wbudowany podgląd nie pokazuje nic), .ico pokazuje wszystkie rozmiary (wbudowany podgląd — jeden), a pod obrazem ustawione są jego warianty skali.

Eksplorator rozwiązań z ChartPolar_x4.png pod wskaźnikiem i kartą ImageSmith z wariantami skali ×1, ×2, ×3 i ×4

Karta pozostaje, dopóki wskaźnik jest nad elementem lub nad kartą, więc można klikać jej linki — tutaj to Otwórz, Otwórz w aplikacji domyślnej, Kopiuj ścieżkę i Kopiuj obraz. Zamyka się po zjechaniu wskaźnikiem, przewinięciu, naciśnięciu klawisza lub kliknięciu w drzewie.

Foldery, pliki kodu i wszystko, czego ImageSmith nie pokazuje, zachowują wbudowaną etykietkę. Jeśli aktualizacja Visual Studio zmieni Eksplorator rozwiązań tak, że nie da się znaleźć elementu pod wskaźnikiem, ImageSmith po prostu nie przeszkadza.

Ikony (.ico)

Plik .ico zawiera kilka obrazów, po jednym na rozmiar. Karta .ico pokazuje je wszystkie obok siebie na szachownicy (rozmiary powyżej 128 px są pokazane jako 128) i tabelę z każdym rozmiarem, jego kolorami, informacją, czy jest zapisany jako BMP czy PNG, oraz liczbą bajtów.

Karta ImageSmith pliku contoso.ico: sześć rozmiarów od 16 do 256 i tabela z kolorami, formatem i bajtami

Kliknij rozmiar — na pasku lub w tabeli — aby go wybrać. Kopiuj wybrany rozmiar umieszcza ten obraz w schowku.

Zapisz jako PNG w wierszu zapisuje ten rozmiar do pliku PNG; Zapisz wszystkie rozmiary jako PNG… pyta o folder i zapisuje po jednym PNG na rozmiar (contoso-16.png … contoso-256.png).

SVG

Pliki SVG są rysowane — w karcie w kodzie, w Eksploratorze rozwiązań i w miniaturach — za pomocą SharpVectors. Pod obrazem karta pokazuje go w 16, 24, 32 i 48 px: tak, jak będzie wyglądać na przycisku paska narzędzi.

Informacje to viewBox (lub szerokość × wysokość, gdy nie ma viewBox), rozmiar pliku i liczba kształtów, z gradient i tekst, gdy plik je zawiera. SVG, którego nie da się narysować, zamiast obrazu pokazuje wiersz błędu.

Zewnętrzne pliki i adresy URL, do których odwołuje się SVG, nigdy nie są wczytywane.

Animowany GIF

Animowany GIF odtwarza się w karcie w pętli, a informacje mówią, ile ma klatek i jak długo trwa: GIF · animowany, klatki: 8, 0,8 s. GIF z jedną klatką pozostaje nieruchomy. WebP, TIFF i BMP są pokazywane tak jak PNG i JPEG.

Trzy karty ImageSmith: animowany GIF, obraz WebP i SVG z gradientem

Warianty skali

Obrazy często występują w kilku skalach dla ekranów o wysokim DPI. Gdy pliki leżą obok siebie, karta ustawia je pod obrazem, każdy narysowany proporcjonalnie, ze skalą i rozmiarem w pikselach (×2 · 64); pokazywany jest obrysowany. Brakująca typowa skala to przerywane pole.

NazewnictwoPrzykładPrzerywane pole, gdy brak
Mnożnik (WinForms, projektanty raportów)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
Sufiks rozmiaruicon-16.png, icon-32.png, tent-480.jpg, tent-768.jpg—

Kliknij wariant, aby zobaczyć go w tej samej karcie. Rząd jest w karcie w kodzie i w Eksploratorze rozwiązań.

Co jest rozpoznawane

Ścieżka jest rozpoznawana po rozszerzeniu pliku obrazu, w miejscach, w których dany język podaje pliki:

GdziePrzykłady
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 i 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)
Pliki projektów<ApplicationIcon>, <Resource Include="…">, <Content Include="…">, MAUI and appxmanifest images
.resxResXFileRef do obrazu oraz zwykła wartość tekstowa, która jest ścieżką do obrazu.
FormatyPNG, JPEG, GIF, BMP, TIFF, ICO, WebP, SVG

Pack URI do innego projektu rozwiązania (/Contoso.Icons;component/Icons/save.svg, z wersją lub bez) są wyszukiwane w tym projekcie. ms-appx:/// znajduje też kwalifikowane pliki UWP i WinUI (Logo.scale-200.png dla Logo.png); logo.png w MAUI znajduje Resources/Images/logo.svg.

Celowo niepokazywane: adresy URL i URI data:, powiązania i zasoby ({Binding …}, {StaticResource …}), ciągi interpolowane i ścieżki budowane ze zmiennych, właściwości MSBuild, symbole wieloznaczne, pack://siteoforigin: oraz same nazwy plików w C# ("logo.png" może być czymkolwiek).

Wskazówki

Dwa rodzaje wskazówek, wspólne z rodziną SmithWorks: każdy tekst zaczyna się od ImageSmith:, jego etykietka ma Nie pokazuj tego rodzaju wskazówek, a z LensSmith wskazówka widoczna jest też na końcu wiersza.

WskazówkaKiedyTekst
Nie znaleziono obrazuŚcieżka do obrazu, którego nie ma w projekcie ani na dysku (falista linia). Adresy URL, ścieżki ze zmiennymi i same nazwy plików w kodzie nie są sprawdzane.ImageSmith: /Assets/banner-old.png is not in the project.
Ikona bez typowych rozmiarówPlik .ico aplikacji lub zasobnika bez 16, 32, 48 lub 256 px (szare kropki): Windows skaluje inny rozmiar i wygląda on nieostro. Favikony nie są sprawdzane.ImageSmith: tray.ico has no 16 × 16 image — Windows will scale a larger one.

Każdy rodzaj można wyłączyć w sekcji Wskazówki w edytorze w ustawieniach albo bezpośrednio ze wskazówki.

Ustawienia

Narzędzia › Opcje › SmithWorks › ImageSmith. Każda opcja ma krótki opis tego, co robi.

OpcjaDomyślnie
Podgląd po najechaniuWł.
Karta w Eksploratorze rozwiązańWł.
Miniatury przed ścieżkamiWł.
Tło podgląduSzachownica
Wskazówki: Nie znaleziono obrazuWł.
Wskazówki: Ikona bez typowych rozmiarówWł.
Proś o ocenę w MarketplaceWł.

Ustawienia są przechowywane w %LocalAppData%\ImageSmith. Przywróć domyślne ponownie włącza wszystko.

Strona opcji ImageSmith
Strona opcji.

FAQ

Zatrzymuję wskaźnik na ścieżce i nic się nie otwiera. Dlaczego?

ImageSmith pokazuje kartę tylko dla pliku, który znajdzie na dysku. Sprawdź, czy ścieżka kończy się rozszerzeniem obrazu i nie jest budowana ze zmiennych, powiązania ani adresu URL (takie nigdy nie są pokazywane). Jeśli pliku brakuje, ścieżka powinna zamiast tego mieć falistą linię Nie znaleziono obrazu. Same nazwy plików w C# ("logo.png") są celowo pomijane — czytane są tam tylko ścieżki z folderem lub pack URI.

Dlaczego dla avares://OtherAssembly/… nic nie ma?

URI avares:// lub pack URI wskazuje zestaw. Gdy ten zestaw jest projektem otwartego rozwiązania, ImageSmith szuka w tym projekcie. Gdy pochodzi z pakietu NuGet lub przywoływanej biblioteki DLL, obraz jest w nią wkompilowany i nie jest plikiem na dysku — więc nie ma czego pokazać, a ImageSmith nie zgłasza go też jako brakującego.

Moje SVG ma błędną przestrzeń nazw lub nie ma jej wcale. Czy jest rysowane?

Tak. Pliki zapisane z xmlns="http://w3.org" lub bez żadnej przestrzeni nazw są częste; ImageSmith wstawia przestrzeń nazw SVG tuż przed rysowaniem, więc karta pokazuje obraz. Przeglądarki mogą jednak odrzucić taki plik, więc warto go poprawić.

Karta mówi, że nie może narysować tego SVG. Co teraz?

Karta pokazuje pierwszy wiersz błędu (na przykład błąd XML z wierszem i kolumną). Popraw plik i ponownie zatrzymaj wskaźnik na ścieżce — zmieniony plik jest czytany od nowa.

Czy mogę zachować wbudowany podgląd w Eksploratorze rozwiązań?

Tak — wyłącz Karta w Eksploratorze rozwiązań w ustawieniach. Karta w kodzie zostaje.

Czy duży obraz spowalnia edytor?

Nie. Obrazy są dekodowane w wątku w tle i tylko w rozmiarze potrzebnym karcie; miniatury są dekodowane w małym rozmiarze. Pliki powyżej 256 MB (SVG powyżej 8 MB, ICO powyżej 16 MB) pokazują informacje bez obrazu.

Czy ImageSmith gdzieś coś wysyła?

Nie. Czyta pliki obrazów Twojego rozwiązania na Twoim komputerze i nic więcej — bez telemetrii, bez żądań, a SVG nigdy niczego nie wczytuje z internetu.

Gdzie zgłosić problem lub zaproponować funkcję?

Otwórz zgłoszenie w repozytorium Feedback na GitHubie — są tam formularze dla błędów, pomysłów i nierozpoznanych ścieżek (prosimy zmienić prywatne nazwy). Możesz też skorzystać z karty Q&A w Marketplace.

Historia zmian

1.1.0

1.0.0