Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Gunakan efek sumber bitmap untuk menghasilkan ID2D1Image dari IWICBitmapSource untuk digunakan sebagai input dalam grafik efek. Efek ini melakukan penskalaan dan rotasi pada CPU. Ini juga dapat secara opsional menghasilkan mipmap memori sistem, yang dapat menjadi pengoptimalan kinerja untuk secara aktif menskalakan gambar yang sangat besar pada berbagai resolusi yang dikurangi.
Nota
Efek sumber bitmap mengambil inputnya sebagai properti, bukan sebagai input gambar. Anda harus menggunakan metode SetValue , bukan metode SetInput . Properti WicBitmapSource adalah tempat Anda menentukan data input gambar.
CLSID untuk efek ini adalah CLSID_D2D1BitmapSource.
- Sifat Efek
- mode Interpolasi
- Orientasi
- mode Alpha
- Komentar
- Persyaratan
- Topik terkait
Sifat Efek
| Nama tampilan dan enumerasi indeks | Deskripsi |
|---|---|
| WicBitmapSumber D2D1_BITMAPSOURCE_PROP_WIC_BITMAP_SOURCE |
IWICBitmapSource berisi data gambar yang akan dimuat. Jenisnya adalah IWICBitmapSource. Nilai defaultnya adalah NULL. |
| Timbangan D2D1_BITMAPSOURCE_PROP_SCALE |
Jumlah skala dalam arah X dan Y. Efek ini mengalikan lebar dengan nilai X dan tinggi dengan nilai Y. Properti ini adalah D2D1_VECTOR_2F yang didefinisikan sebagai: (Skala X, skala Y). Jumlah skala adalah FLOAT, tanpa unit, dan harus positif atau 0. Jenisnya D2D1_VECTOR_2F. Nilai defaultnya adalah {1.0f, 1.0f}. |
| Mode Interpolasi. D2D1_BITMAPSOURCE_PROP_INTERPOLATION_MODE |
Mode interpolasi yang digunakan untuk menskalakan gambar. Lihat mode interpolasi untuk informasi selengkapnya. Jika mode menonaktifkan mipmap, maka BitmapSource akan menyimpan gambar dalam cache pada resolusi yang ditentukan oleh properti Scale dan EnableDPICorrection. Jenisnya D2D1_BITMAPSOURCE_INTERPOLATION_MODE. Nilai defaultnya adalah D2D1_BITMAPSOURCE_INTERPOLATION_MODE_LINEAR. |
| Aktifkan DPICorrection D2D1_BITMAPSOURCE_PROP_ENABLE_DPI_CORRECTION |
Jika Anda mengatur ini ke TRUE, efeknya akan menskalakan gambar input untuk mengonversi DPI yang dilaporkan oleh IWICBitmapSource ke DPI konteks perangkat. Efek ini menggunakan mode interpolasi yang Anda atur dengan properti InterpolationMode. Jika Anda mengatur ini ke FALSE, efeknya menggunakan DPI 96.0 untuk gambar output. Jenisnya adalah BOOL. Nilai defaultnya adalah FALSE. |
| Mode Alfa D2D1_BITMAPSOURCE_PROP_ALPHA_MODE |
Mode alfa output. Ini bisa dikalikan sebelumnya atau lurus. Lihat mode Alpha untuk informasi selengkapnya. Jenisnya D2D1_BITMAPSOURCE_ALPHA_MODE. Nilai defaultnya adalah D2D1_BITMAPSOURCE_ALPHA_MODE_PREMULTIPLIED. |
| Orientasi D2D1_BITMAPSOURCE_PROP_ORIENTATION |
Operasi membalik dan/atau rotasi yang akan dilakukan pada gambar. Lihat Orientasi untuk info selengkapnya. Jenisnya D2D1_BITMAPSOURCE_ORIENTATION. Nilai defaultnya adalah D2D1_BITMAPSOURCE_ORIENTATION_DEFAULT. |
Mode interpolasi
Efek interpolasi menggunakan mode ini saat menskalakan gambar atau saat mengoreksi DPI. Mode interpolasi yang digunakan efek ini dihitung oleh CPU, bukan GPU.
| Nama | Deskripsi |
|---|---|
| D2D1_BITMAPSOURCE_INTERPOLATION_MODE_NEAREST_NEIGHBOR | Mengambil sampel titik tunggal terdekat dan menggunakannya. Tidak menghasilkan mipmap. |
| D2D1_BITMAPSOURCE_INTERPOLATION_MODE_LINEAR | Menggunakan sampel empat titik dan interpolasi linier. Tidak menghasilkan mipmap. |
| D2D1_BITMAPSOURCE_INTERPOLATION_MODE_CUBIC | Menggunakan 16 sampel kernel kubik untuk interpolasi. Tidak menghasilkan mipmap. |
| D2D1_BITMAPSOURCE_INTERPOLATION_MODE_FANT | Menggunakan interpolasi WIC fant, sama dengan antarmuka IWICBitmapScaler . Tidak menghasilkan mipmap. |
| D2D1_BITMAPSOURCE_INTERPOLATION_MODE_MIPMAP_LINEAR | Menghasilkan rantai mipmap dalam memori sistem menggunakan interpolasi biliar. Untuk setiap mipmap, efek berskala ke kelipatan terdekat 0,5 menggunakan interpolasi biliar, dan kemudian menskalakan jumlah yang tersisa menggunakan interpolasi linier. |
Orientasi
Properti Orientasi dapat digunakan untuk menerapkan bendera orientasi EXIF yang disematkan dalam gambar.
| Nama | Deskripsi |
|---|---|
| D2D1_BITMAPSOURCE_ORIENTATION_DEFAULT | Bawaan Efeknya tidak mengubah orientasi input. |
| D2D1_BITMAPSOURCE_ORIENTATION_FLIP_HORIZONTAL | Membalik gambar secara horizontal. |
| D2D1_BITMAPSOURCE_ORIENTATION_ROTATE_CLOCKWISE180 | Memutar gambar searah jarum jam 180 derajat. |
| D2D1_BITMAPSOURCE_ORIENTATION_ROTATE_CLOCKWISE180_FLIP_HORIZONTAL | Memutar gambar searah jarum jam 180 derajat dan membaliknya secara horizontal. |
| D2D1_BITMAPSOURCE_ORIENTATION_ROTATE_CLOCKWISE270_FLIP_HORIZONTAL | Memutar gambar searah jarum jam 270 derajat dan membaliknya secara horizontal. |
| D2D1_BITMAPSOURCE_ORIENTATION_ROTATE_CLOCKWISE90 | Memutar gambar searah jarum jam 90 derajat. |
| D2D1_BITMAPSOURCE_ORIENTATION_ROTATE_CLOCKWISE90_FLIP_HORIZONTAL | Memutar gambar searah jarum jam 90 derajat dan membaliknya secara horizontal. |
| D2D1_BITMAPSOURCE_ORIENTATION_ROTATE_CLOCKWISE270 | Memutar gambar searah jarum jam 270 derajat. |
Cuplikan kode ini menunjukkan cara mengonversi dari nilai orientasi EXIF (ditentukan dalam propkey.h) ke nilai D2D1_BITMAPSOURCE_ORIENTATION.
#include <propkey.h>
#include <d2d1effects.h>
D2D1_BITMAPSOURCE_ORIENTATION GetBitmapSourceOrientation(unsigned short PhotoOrientation)
{
switch (PhotoOrientation)
{
case PHOTO_ORIENTATION_NORMAL:
return D2D1_BITMAPSOURCE_ORIENTATION_DEFAULT;
case PHOTO_ORIENTATION_FLIPHORIZONTAL:
return D2D1_BITMAPSOURCE_ORIENTATION_FLIP_HORIZONTAL;
case PHOTO_ORIENTATION_ROTATE180:
return D2D1_BITMAPSOURCE_ORIENTATION_ROTATE_CLOCKWISE180;
case PHOTO_ORIENTATION_FLIPVERTICAL:
return D2D1_BITMAPSOURCE_ORIENTATION_ROTATE_CLOCKWISE180_FLIP_HORIZONTAL;
case PHOTO_ORIENTATION_TRANSPOSE:
return D2D1_BITMAPSOURCE_ORIENTATION_ROTATE_CLOCKWISE90_FLIP_HORIZONTAL;
case PHOTO_ORIENTATION_ROTATE270:
return D2D1_BITMAPSOURCE_ORIENTATION_ROTATE_CLOCKWISE90;
case PHOTO_ORIENTATION_TRANSVERSE:
return D2D1_BITMAPSOURCE_ORIENTATION_ROTATE_CLOCKWISE270_FLIP_HORIZONTAL;
case PHOTO_ORIENTATION_ROTATE90:
return D2D1_BITMAPSOURCE_ORIENTATION_ROTATE_CLOCKWISE270;
default:
return D2D1_BITMAPSOURCE_ORIENTATION_DEFAULT;
}
}
Mode alfa
| Nama | Deskripsi |
|---|---|
| D2D1_BITMAPSOURCE_ALPHA_MODE_PREMULTIPLIED | Output efek menggunakan alpha yang dikalikan sebelumnya. |
| D2D1_BITMAPSOURCE_ALPHA_MODE_STRAIGHT | Output efek menggunakan alfa lurus. |
Komentar
Untuk mengoptimalkan performa saat menggunakan WIC dan Direct2D secara bersamaan, Anda harus menggunakan IWICFormatConverter untuk mengonversi ke format piksel yang sesuai berdasarkan skenario aplikasi Anda dan presisi asli gambar.
Dalam kebanyakan kasus, alur Direct2D aplikasi Anda hanya memerlukan presisi 8 bit per saluran (bpc), atau gambar hanya memberikan presisi 8 bpc, dan oleh karena itu Anda harus mengonversi ke GUID_WICPixelFormat32bppPBGRA. Namun, jika Anda ingin memanfaatkan presisi ekstra yang disediakan oleh gambar (misalnya, JPEG-XR atau TIFF yang disimpan dengan presisi lebih besar dari 8 bpc), Anda harus menggunakan format piksel berbasis RGBA. Tabel di bawah ini memberikan detail lebih lanjut.
| Presisi yang diinginkan | Ketepatan asli gambar | Format piksel yang direkomendasikan |
|---|---|---|
| 8 bit per saluran | <= 8 bit per saluran | GUID_WICPixelFormat32bppPBGRA |
| Setinggi mungkin | <= 8 bit per saluran | GUID_WICPixelFormat32bppPBGRA |
| Setinggi mungkin | > 8 bit per saluran | Urutan saluran RGBA, alfa yang dikalikan sebelumnya |
Karena banyak format gambar mendukung beberapa tingkat presisi, Anda harus menggunakan IWICBitmapSource::GetPixelFormat untuk mendapatkan format piksel asli gambar, lalu menggunakan IWICPixelFormatInfo untuk menentukan berapa banyak bit per saluran presisi yang tersedia untuk format tersebut. Juga, perhatikan bahwa tidak semua perangkat keras mendukung format piksel presisi tinggi. Dalam kasus tersebut, aplikasi Anda mungkin perlu kembali ke perangkat WARP untuk mendukung presisi tinggi.
Persyaratan
| Persyaratan | Nilai |
|---|---|
| Klien minimum yang didukung | Windows 8 dan Pembaruan Platform untuk Windows 7 [aplikasi desktop | aplikasi Windows Store] |
| Server minimum yang didukung | Windows 8 dan Pembaruan Platform untuk Windows 7 [aplikasi desktop | aplikasi Windows Store] |
| Kepala Halaman | d2d1effects.h |
| Perpustakaan | d2d1.lib, dxguid.lib |