Per un'applicazione desktop Vista + che elabora le immagini e deve essere scritta in C#, quale delle seguenti tecnologie (o combinazioni_ si consiglia: System.Drawing (GDI +) vs System.Windows.Media vs Direct2D + DirectWrite + WIC L'elaborazione delle immagini coinvolgerà tutti i tipi di disegno primitivo, riempiendo, lavorando con testo, rotazioni, traslazioni, ridimensionamento, lavorando con i dati dei pixel direttamente usando In generale, quanto sono valide le tecnologie sopra descritte per manipolare le bitmap?System.Drawing (GDI +) vs System.Windows.Media (WPF) vs Direct2D + DirectWrite + WIC
Inoltre, se qualcuno conosce una tabella di confronto valida e dettagliata che elenca le funzionalità e gli equivalenti diversi fianco a fianco, nonché quello che non è supportato Sarebbe fantastico! Ad esempio, ci sono equivalenti ColorMatrix in WP F e Direct2D? Dopo aver esaminato l'implementazione di Direct2D da parte di SharpDX, ad esempio, mi è rimasta l'impressione che anche se Microsoft la posizionasse come alternativa completa a GDI +, non avrei potuto trovare tutte le funzionalità di GDI + in Direct2D.
Inoltre, considerando che è il 2014, diresti che almeno per la manipolazione delle immagini (se non la parte dell'interfaccia utente delle cose, dove WPF sembra essere una scelta molto migliore), GDI + sarebbe ok per i prossimi 5 o così anni? O dovrei davvero considerare l'utilizzo di tutte e 3 le tecnologie in cui ognuna funziona meglio?
Grazie.
Quali caratteristiche in GDI + mancano in Direct2D? –
GDI + non è l'elaborazione di immagini, è solo un wrapper su Win32 GDI che supporta principalmente per il rendering dell'interfaccia utente (non immagini). Quindi le funzionalità sono abbastanza limitate. Penso che dovresti cercare una libreria di immagini per .NET, con tali librerie puoi fare qualsiasi operazione (su un'immagine) che ti piace, ad esempio eseguire trasformazioni complicate, ... La grafica in WPF è molto meglio che in Winforms, tuttavia è anche orientato all'interfaccia utente piuttosto che focalizzato sull'immagine. –
@WaltRitscher Bene, ad esempio: HatchBrush, ColorMatrix, PathGradientBrush per citarne alcuni. –