2016-06-27 2 views
1

В настоящее время мы используем Canvas для визуализации штрих-кода в пользовательском интерфейсе для WinRT, UWP. Мы достигаем этого, добавляя все точки (черные точки в QR-штрих-коде) в качестве путей в холсте, которые при рендеринге используют больше времени для отображения штрих-кода. Каков эффективный способ достижения этой цели с высокой производительностью.Лучший способ использования Canvas с множеством путей как детей

QR Barcode Image:

enter image description here

+1

Render один раз на экранном холсте, а затем визуализируйте его, когда это необходимо. Или, возможно, используйте интерфейс Path2D https://developer.mozilla.org/en-US/docs/Web/API/Path2D – Blindman67

+1

Используйте [WriteableBitmap] (https://msdn.microsoft.com/en-us/library/ окна/приложения/br243259)? – Clemens

+1

библиотека zxing дает вам изображение. вы это знаете? –

ответ

0

Я получил решение для этого, рисуя штрихкод как изображение вместо холста.

public WriteableBitmap Render() 
    { 

     byte[] foreground = new byte[] { 0, 0, 0, 255 }; 
     byte[] background = new byte[] { 0, 100, 0, 255 }; 
     WriteableBitmap bmp = new WriteableBitmap(2, 2); 

     bmp.PixelBuffer.AsStream().Write(foreground, 0, 4); 
     bmp.PixelBuffer.AsStream().Write(background, 0, 4); 
     bmp.PixelBuffer.AsStream().Write(foreground, 0, 4); 
     bmp.PixelBuffer.AsStream().Write(background, 0, 4); 


     bmp.Invalidate(); 
     return bmp; 
    } 
Смежные вопросы