2013-04-21 12 views
10

mam działkę i m ustawienie tła na przezroczyste przez:Matlab: Zapisz rysunek z przezroczystym tłem

set(gcf, 'Color', 'None'); 
set(gca, 'Color', 'None'); 

Gdy próbuję zapisać obraz (od widza), zapisać jako .png, ale oszczędza na białym tle. Jak mogę zapisać go z przezroczystym tłem?

Dzięki

Odpowiedz

9

To rozczarowujące, ale domyślne saveas i print poleceń MATLAB nie może uporać się z przezroczystych rzeczy bardzo dobrze. Będziesz musiał go zapisać z pewnym tłem, a następnie przekonwertować go poprzez imread/imwrite lub inne narzędzie.

Istnieje kilka narzędzi, które mogą być pomocne:

Wolę grafiki wektorowej, więc korzystać z eksportu svg, gdy potrzebna jest przejrzystość. Jeśli rzeczywiście masz bitmapę, użyj imwrite(bitmapData, 'a.png', 'png', 'transparency', backgroundColor).

+2

Akceptuję to, ale tak jak na marginesie w przeglądarce poszedłem edytować -> skopiować figurę i wkleić w programie PowerPoint i wydawało się, że zachowuje ona przezroczystość – Aly

+0

+1 dla plot2svg. – bas

+0

@Aly Zgaduję, że to dlatego, że jest kopiowany przez format 'emf'. Być może zapisywanie jako emf zachowa przejrzystość. (Nie przetestowałem siebie) – Memming

1

Rzeczy się zmieniły od wydania MATLAB 2014b. Nowo wdrożony system graficzny (tzw. HG2, dla wersji graficznej 2) radzi sobie znacznie lepiej pod względem przejrzystości.

Teraz poprawnie zapisuje przezroczystość do SVG!

+0

Co z PNG? – Royi

1

Więc nadal chciałem czegoś prostego, co nie wymagało instalowania czegokolwiek innego (korporacyjny komputer nie jest dozwolony: /). Natknąłem się this link, stwierdzając:

Wszystko co musisz zrobić, to następujące

1) W pliku Matlab dodać polecenia do formatowania postać z przezroczystym tłem

set(gcf, 'color', 'none'); 
set(gca, 'color', 'none'); 

i zapisać lub wyeksportować liczbę wygenerowaną w formacie eps. (Słownie Bspline.eps)

2) Otwarte Bspline.eps w notatniku

3) Spójrz na pierwszej linii. Na przykład %!PS-Adobe-3.0 EPSF-3.0. Ostatnia liczba 3.0 wskazuje poziom Postscript. Dla poziomu 3 wyszukaj ciąg rf. Znajdziesz je w jednym wierszu (cztery liczby, po których następuje rf)

0 0 3025 2593 rf% Skomentuj ten wiersz, używając%.

(poziomu 2 poszukiwaniu napisu pr zamiast rf)

zapisać plik.

Teraz możesz użyć pliku eps lub przekonwertować go na pdf, a następnie użyć. W każdym razie będzie to mieć przezroczyste tło

Extra

dla mnie to było dwa wiersze z re i dwie linie, mimo konieczności %!PS-Adobe-3.0 EPSF-3.0 mnie po prostu sobą. Ale wynik był teraz przejrzysty.

Powiązane problemy