Metode IWiaPreview::UpdatePreview

Mendapatkan gambar yang tidak difilter yang di-cache oleh metode IWiaPreview::GetNewPreview .

Sintaks

HRESULT UpdatePreview(
  [in] LONG      lOptions,
  [in] IWiaItem2 *pChildWiaItem
);

Parameter

lOptions [in]

Jenis: LONG

Menentukan apakah aplikasi memerlukan Komponen Pratinjau WIA 2.0 untuk meneruskan sub-wilayah gambar yang di-cache atau seluruh gambar yang di-cache ke filter pemrosesan gambar.

WiaPreviewReturnOriginalImage

Teruskan seluruh gambar yang di-cache ke filter pemrosesan gambar.

pChildWiaItem [in]

Jenis: IWiaItem2*

Menentukan penunjuk ke item IWiaItem2 , yang merupakan anak dari item IWiaItem2 yang ditentukan oleh parameter pWiaItem2 dari metode IWiaPreview::GetNewPreview . Atau, jika aplikasi memerlukan pratinjau seluruh flatbed, menentukan pointer ke parameter pWiaItem2 dari metode IWiaPreview::GetNewPreview . Ketika pChildWiaItem adalah anak dari parameter pWiaItem2IWiaPreview::GetNewPreview, item anak ini biasanya dibuat oleh filter segmentasi.

Menampilkan nilai

Jenis: HRESULT

Jika metode ini berhasil, metode akan mengembalikan S_OK. Jika tidak, kode kesalahan HRESULT akan dikembalikan.

Keterangan

Metode ini meneruskan gambar yang di-cache dan tidak difilter melalui filter pemrosesan gambar, yang kemudian menulis data yang difilter ke aliran yang disediakan aplikasi. Komponen Pratinjau WIA 2.0 mengambil aliran ini dengan memanggil metode GetNextStream filter pemrosesan gambar, yang kemudian memanggil implementasi GetNextStream panggilan balik aplikasi. Sebelum memanggil IWiaPreview::UpdatePreview, aplikasi harus terlebih dahulu memanggil IWiaPreview::GetNewPreview untuk memperoleh gambar dari pemindai; jika tidak, metode mengembalikan kesalahan.

Komponen Pratinjau WIA 2.0 menyimpan gambar yang tidak difilter yang diunduh dari driver. Ada kemungkinan bahwa item WIA 2.0 yang diteruskan ke IWiaPreview::UpdatePreview hanya mewakili wilayah kecil gambar yang diunduh dari driver. Jika demikian, Komponen Pratinjau WIA 2.0 benar-benar memotong wilayah ini dari gambar yang di-cache sebelum meneruskannya ke filter pemrosesan gambar, yang pada gilirannya meneruskan data gambar yang difilter kembali ke aplikasi.

Agar aplikasi meneruskan seluruh gambar yang di-cache ke filter pemrosesan gambar (yang pada gilirannya meneruskannya ke aplikasi), aplikasi harus mengatur lOptions ke WiaPreviewReturnOriginalImage saat memanggil IWiaPreview::UpdatePreview. Saat mengatur lOptions ke WiaPreviewReturnOriginalImage, aplikasi harus memastikan bahwa pengaturan jangkauan (WIA_IPS_XEXTENT dan WIA_IPS_YEXTENT) item yang diteruskan ke IWiaPreview::UpdatePreview cocok dengan gambar yang di-cache penuh. Filter pemrosesan gambar tidak perlu melakukan sesuatu yang berbeda dalam hal ini; ini hanya memfilter gambar, berdasarkan properti pChildWiaItem (biasanya dalam hal ini pChildWiaItem adalah item yang sama yang diteruskan ke IWiaPreview::GetNewPreview). Sub-wilayah yang berbeda diabaikan dan seluruh gambar difilter menggunakan pengaturan yang sama. Ada beberapa alasan mengapa aplikasi akan melakukan ini.

  1. Aplikasi mungkin tidak mendukung perubahan pengaturan (seperti WIA_IPS_BRIGHTNESS dan WIA_IPS_CONTRAST) satu per satu untuk setiap wilayah yang dideteksi filter segmentasi (atau bahkan mungkin tidak ingin menggunakan filter segmentasi). Lebih mudah bagi aplikasi untuk memanggil IWiaPreview::UpdatePreview dengan WiaPreviewReturnOriginalImage sehingga selalu menerima gambar lengkap dari Komponen Pratinjau WIA 2.0.
  2. Komponen Pratinjau WIA 2.0 tidak mendukung format gambar gambar pratinjau, dalam hal ini tidak dapat melakukan tindakan untuk memotong wilayah yang diinginkan. Dukungan format gambar Komponen Pratinjau WIA 2.0 terbatas pada format yang ada encoder dan dekoder Windows GDI+ 1.1. Format ini adalah bitmap (BMP) (bitmap yang mencakup BITMAPFILEHEADER), Graphics Interchange Format (GIF), JPEG, Portable Network Graphics (PNG), dan Tagged Image File Format (TIFF).

Perhatikan bahwa jika aplikasi meneruskan WiaPreviewReturnOriginalImage ke IWiaPreview::UpdatePreview, Komponen Pratinjau WIA 2.0 dapat mendukung format gambar atau piksel apa pun.

IWiaPreview::UpdatePreview mengatur properti WIA_DPS_PREVIEW (dan mengatur ulang sebelum kembali, kecuali ditetapkan sebelumnya). Ini memungkinkan driver (dan perangkat keras) serta filter pemrosesan gambar, mengetahui bahwa item tersebut adalah pemindaian pratinjau.

Aplikasi harus memastikan bahwa pChildWiaItem memiliki format gambar (WIA_IPA_FORMAT) dan resolusi yang sama (WIA_IPS_XRES dan WIA_IPS_YRES) seperti pWiaItem ketika diteruskan ke IWiaPreview::GetNewPreview. Format item anak harus sesuai dengan format gambar cache Komponen Pratinjau WIA 2.0 (Komponen Pratinjau WIA 2.0 tidak melakukan konversi gambar).

Contoh

UpdateRegion harus dipanggil setiap kali pengguna berubah, misalnya, kecerahan atau kontras untuk item anak yang diwakili oleh dwRegionNumber. Item anak ini sebelumnya telah dibuat oleh filter segmentasi (IWiaSegmentationFilter. Gambar yang ditulis ke IStream dikembalikan oleh metode GetNextStream antarmuka panggilan balik transfer. Kode untuk GetSubRegionItem dihilangkan dalam contoh ini.

Setelah fungsi ini dipanggil, aplikasi biasanya akan menggambar ulang wilayah di layar.

HRESULT
UpdateRegion(
   IN  DWORD dwRegionNumber)
{
   IWiaItem2 *pSubRegion = GetSubRegionItem(dwRegionNumber);

   return m_pWiaPreview->UpdatePreview(0,pSubRegion);
}

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung
Windows Vista [hanya aplikasi desktop]
Server minimum yang didukung
Windows Server 2008 [hanya aplikasi desktop]
Header
Wia.h
IDL
Wia.idl