WIA 2.0 を使用して、HP スキャナーから画像をスキャンしています。問題は、保存された TIFF のサイズが約 9MB (300dpi の A4 ページ、グレースケール) になることです。次のように、TIFF 形式のスキャンを含む WIA の ImageFile を BitmapSource に変換します。
public static BitmapSource ConvertScannedImage(ImageFile imageFile)
{
if (imageFile == null)
return null;
// save the image out to a temp file
string fileName = Path.GetTempFileName();
// this is pretty hokey, but since SaveFile won't overwrite, we
// need to do something to both guarantee a unique name and
// also allow SaveFile to write the file
File.Delete(fileName);
// now save using the same filename
imageFile.SaveFile(fileName);
BitmapFrame img;
// load the file back in to a WPF type, this is just
// to get around size issues with large scans
using (FileStream stream = File.OpenRead(fileName))
{
img = BitmapFrame.Create(stream, BitmapCreateOptions.None, BitmapCacheOption.OnLoad);
stream.Close();
}
// clean up
File.Delete(fileName);
return img;
}
可能であればメモリ内で画像サイズを縮小する方法を知っている人はいますか (プレビューして回転できるスキャンのリストがあるため)。ありがとう。