Капітан Америка vs VirtualSurfaceImageSource, Частина 1


Введення
Велику частину часу, розробка під Windows Runtime приносить ні з чим не порівнянне задоволення. Справ-то всього нічого: наліпив контролів, додав щіпку MVVM, а потім сидиш, і милуєшся своїм кодом. Так відбувається в 99% випадків. У решти сотої долі, починаються справжні танці з бубном.

Насправді, я перебільшую, до поганських ритуалів вдаюся лише в зовсім безвихідних ситуаціях. А ось WP розробникам є за що посварити MS, почавши хоча б з бідних Silverlight розробників, на частку яких припали всі нещастя. Ну да ладно, це все вже в офтопік пішло.

Кеп, ти де?
Отже, подумки перенесемося в гіпотетичну ситуацію. У нас є додаток, нехай це буде клієнт для kinopoisk.ru під Windows 8.1. І постер якого-небудь голлівудського AAA проекту з багатомільйонним бюджетом і супергероями з улюблених нами коміксів. Завдання — відобразити користувачеві постер в ідеальному якості. Під словом «ідеальне» я маю на увазі відповідність 1 піксель зображення == 1 піксель фізичний.

Здавалося б, дрібниця, створюємо Image і присвоюємо його властивості Source потрібний BitmapImage з картинкою. От тільки розмір картинки насторожує — 9300 x 12300. Взявши в руки калькулятор, починаю вважати: 9300 * 12300 пікс * 4 Б/пікс = 436 МБ. Досить значна цифра, але в 21 столітті такими речами вже не здивуєш. Середній настольник 2010 року без проблем перетравлює такі обсяги даних, так що тисни F5 і насолоджуємося своїм творінням. Все відмінно працює, щонайменше на моєму комп'ютері, і добре. На цьому статтю можна було б і закінчити…

Читати далі →