2011-07-07 6 views
10

Jak już powiedziałem w tytule. Po prostu chcę wiedzieć, który jest lepszy między używaniem plików obrazów a rysowaniem wektorów (lub ścieżek). Wiem, że używanie wektora jest lepsze dla wyglądu, ale co z wydajnością.Co jest lepsze? Między używaniem pliku obrazu i rysowaniem kształtu wektorowego

A jeśli zależy to od przypadków. Czy ktoś może wyjaśnić.

(To pytanie może zawierać WP7, Silverlight, WPF, a nawet w przypadku ogólnym.)

Odpowiedz

19

Oto ogólna odpowiedź na porównanie zalet/wad Bitmapy (co myślę, że masz na myśli przez "plik obrazu") w stosunku do Vector.

Obrazy oparte na bitmapach (gif, tiff, jpeg, png, bmp) są w zasadzie koncepcją mapowania kolorów (i innych danych, takich jak warstwa alfa) na siatkę pikseli. Różne formaty plików oferują wariacje obsługiwanych i poziomów kompresji, ale jest to koncepcja wysokiego poziomu. Pełna mapa pikseli i danych jest przechowywana w pliku jako macierz/tabela.

Obrazy oparte na wektorach, jak mówisz, są oparte na ścieżce. Zamiast przechowywania informacji przez piksele, format pliku będzie przechowywać geometryczne punkty i dane.

Zalety dla map bitowych są:

  • Zwykle czyni szybciej niż wektor. Dzieje się tak dlatego, że w przedstawieniu obrazu jest minimalna liczba obliczeń (wystarczy wziąć mapę pikselową i wyświetlić).

  • Obsługują "fotograficzną" zawartość lepiej niż wektor.

  • Są bardziej przenośne niż wektorowe. GIF, JPEG, PNG, BMP są bardziej niż jakakolwiek norma formacie wektorowym (gdzie zwykle Adobe ma na rynku)

Minusy dla map bitowych są:

  • Nie skalować bez pogorszenia (pikselizacja)

  • Manipulacja (tj.zmiana rozmiaru, zacieranie, oświetlenie, itp) z bitmapy jest bardziej procesor droższe niż wektorze

  • Pliki są zwykle znacznie większe niż pliki wektorów opartych

Profesjonaliści dla wektorów są:

  • Elastyczny dla skalowania i manipulacji

  • Mniejsze formaty plików niż wektora

  • Idealny do drukowania i animacji (np. manipulowania kształt wywołać efekt animacji)

Wady dla wektorów należą:

  • renderowania czasu, w zależności od złożoności wektora, może być dłuższy

  • przenoszenia najbardziej formaty są w dużym stopniu zastrzeżone

  • Praca dla obrazów "graficznych", ale nieprzydatna dla fotorealizmu

Mam nadzieję, że to pomoże.

+1

WOW! Co za szczegółowe wyjaśnienie. Dziękuję bardzo za twoją odpowiedź, to pomaga mi zrozumieć wektor i obraz. – anuith

2

Na podstawie naszych doświadczeń z Phone 7 (Non-mango) aplikacji Windows możemy znaleźć za pomocą obrazów, zamiast używać rysunek produkuje o wiele większa responsywność, stąd wydajność UX do ciągłej animacji na stronach. (YMMV)

1

Początkowo powiedziałbym, że obrazy renderują się szybciej niż wektory. The complexer the vector, więcej czasu zajmuje renderowanie. Im większy obraz, tym więcej czasu na renderowanie.

Mam zamiar spekulować, że (w kategoriach Silverlight) większość obecnego sprzętu wideo jest w stanie bezpośrednio obsługiwać obrazy, zwiększając tym samym wydajność. Nie jestem pewien, czy obliczenia wektorów można wykonać na poziomie sprzętu wideo.

5

Jeremiah Morrill dał great overview of WPF rendering, który zasadniczo pokazuje, że wektor zawsze będzie droższy do renderowania niż obraz. Zasadniczo obraz traktowany jest jako tekstura DirectX ... bez względu na rozmiar, skalowanie czy cokolwiek innego, istnieje stały stały koszt renderowania obrazu. Jak pokazuje przegląd Jer, nawet najprostszy obraz wektorowy wykonuje wiele operacji renderowania w WPF. Morał tej historii polega na tym, że dając opcję, należy wybrać obraz zamiast wektora.

+0

Link nie działa więcej – altso

+0

Link jest teraz naprawiony. –

1

Z punktu widzenia systemu Windows Phone 7 zwykle uzyskuje się szybsze renderowanie obrazów/bitmap niż ścieżek/wektorów. Zgodnie z ogólną zasadą rozwoju urządzeń mobilnych, ze względu na ograniczone zasoby na urządzeniu i zwiększoną potrzebę uwzględnienia wydajności, jeśli możesz zrobić coś raz, na przykład przygotować obraz, w czasie projektowania (lub kompilacji), który zdecydowanie jest lepszy niż robienie tego wiele razy na każdym kliencie.

Należy bardzo uważać na stosowanie reguł na różnych platformach (WPF, Silverlight & WP7), ponieważ są one używane w różnych sytuacjach w różnych sytuacjach i podlegają różnym ograniczeniom. Rzeczy, które musisz wziąć pod uwagę przez telefon, mogą nie być tak dużym problemem w aplikacji WPF działającej na komputerze o dużej mocy.

Powiązane problemy