QNo. |
Q.質問 |
日付 |
|
A.回答 |
|
18
|
Q. ImageKit.NET2 を利用したアプリケーションが、インターネットに繋がっていない環境だと、起動するのにかなり時間がかかってしまいます。回避策はありますか? |
2010/05/19 |
|
A. ImageKit.NET2 のアセンブリ (dll) にはデジタル署名を付加しているので、アプリケーションが使用するアセンブリの有効性を確認するために CRL(「証明書失効リスト」)のダウンロード処理を行います。
インターネットに接続していない環境でアプリケーションの起動が遅くなるのは、タイムアウトになるまで CRL のダウンロードを繰り返し試みてしまうことが原因です。
インターネットに接続していないマシンで使用する場合の回避方法として、以下の手順により CRL のダウンロードを実行しないように設定してください。
(CRL をダウンロードしない場合でも ImageKit.NET2 を利用することは可能です。)
1. [コントロール パネル] - [インターネット オプション] を実行します。
2. [インターネットのプロパティ] ダイアログで [詳細情報] タブ を選択します。
3. [発行元証明書の取り消しを確認する] のチェックボックスをオフします。
また、.NET Framework 2.0 Service Pack 1 以降では、アプリケーション名.exe.config に以下の行を追加することにより、アプリケーション開始時の署名検証を無効にすることができます。
<configuration>
<runtime>
<generatePublisherEvidence enabled="false"/>
</runtime>
</configuration>
|
|
17
|
Q. 画像の縦横のピクセルからインチもしくはセンチメートルに換算するにはどうすればよいですか? |
2009/08/20 |
|
A. 次の例を参考にしてください。
Imageプロパティの画像を換算する場合
VB.NET :
Dim inchX, inchY As Single
Dim cmX, cmY As Single
Dim bmp As System.Drawing.Bitmap = ImageKit1.Image
If bmp.HorizontalResolution <> 0 Then
'インチ
inchX = bmp.Width / bmp.HorizontalResolution
'センチメートル
cmX = inchX * 2.54
End If
If bmp.VerticalResolution <> 0 Then
'インチ
inchY = bmp.Height / bmp.VerticalResolution
'センチメートル
cmY = inchY * 2.54
End If
C# :
float inchX, inchY;
float cmX, cmY;
System.Drawing.Bitmap bmp = (System.Drawing.Bitmap)imageKit1.Image;
if (bmp.HorizontalResolution != 0)
{
//インチ
inchX = bmp.Width / bmp.HorizontalResolution;
//センチメートル
cmX = inchX * (float)2.54;
}
if (bmp.VerticalResolution != 0)
{
//インチ
inchY = bmp.Height / bmp.VerticalResolution;
//センチメートル
cmY = inchY * (float)2.54;
}
|
16
|
Q. TWAINを利用したアプリケーションを64ビットOSで運用できますか?
|
2009/06/03
|
|
A. はい、32ビットアプリケーションとして運用できます。
ただし、プラットフォームターゲットを「x86」にしてビルドする必要があります(「any CPU」でビルドすると64ビットOSでは動作いたしません)。
|
15
|
Q. Visual Studioのデバッグモードでエフェクト処理やスキャン処理を実行すると、EXE単独の実行に比べて処理時間がかなり遅くなります。どうすればよいですか? |
2009/06/03 |
|
A. マネージデバッグアシスタント(MDA)を無効化してください。詳しくは下記を参照してください。
http://msdn.microsoft.com/ja-jp/library/d21c150d.aspx |
14
|
Q. 画像を左右反転もしくは上下反転するにはどうすればよいですか? |
2009/06/03 |
|
A. Effect.Rotationメソッドを使用します。引数のangleを0にし、xTurnをtrueにすると左右反転、yTurnをtrueにすると上下反転になります。xTurn,yTurnを両方trueにすると上下左右反転となります。 |
|
13
|
Q. 開発者作成UIを使用してスキャナから用紙の複数の領域を読み取るにはどうすればよいですか? |
2009/06/03 |
|
A. 一回のスキャンでは複数の領域を読み取ることができないため、複数回スキャンを実行してください。
例: 原稿台の用紙を連続でスキャンする
VB.NET :
If ImageKit1.Scan.Initialize(Me.Handle, 1, 0, "1.00", "NEWTONE Corp.", "ImageKit", "ImageKit.NET Scan Sample") = False Then Exit Sub
ImageKit1.Scan.ClearProperty()
ImageKit1.Scan.DataSourceName = "xxxxxxx" 'データソースの名称
If ImageKit1.Scan.OpenDataSource() = False Then
ImageKit1.Scan.Terminate()
Exit Sub
End If
ImageKit1.Scan.TransferMode = ScanTransfer.Memory
ImageKit1.Scan.Compression = ScanCompression.None
ImageKit1.Scan.UserInterface = ScanUserInterface.Suppress
ImageKit1.Scan.Mode = ScanMode.DocumentPlate
ImageKit1.Scan.Unit = ScanUnit.Inch
ImageKit1.Scan.PaperSize = ScanPaperSize.UserSize 'あるいは負の値
'1箇所目
'読み取り領域を設定
ImageKit1.Scan.Rect = New RectangleF(0, 0, 1, 1)
'他に必要な項目を設定
ImageKit1.Scan.Execute()
'2箇所目
'読み取り領域を設定
ImageKit1.Scan.Rect = New RectangleF(3, 3, 1, 1)
'他に必要な項目を設定
ImageKit1.Scan.Execute()
ImageKit1.Scan.CloseDataSource()
ImageKit1.Scan.Terminate()
C# :
if (imageKit1.Scan.Initialize(this.Handle, 1, 0, "1.00", "NEWTONE Corp.", "ImageKit", "ImageKit.NET Scan Sample") == false) return;
imageKit1.Scan.ClearProperty();
imageKit1.Scan.DataSourceName = 'xxxxxxx'; //データソースの名称
if (imageKit1.Scan.OpenDataSource() == false)
{
imageKit1.Scan.Terminate();
return;
}
imageKit1.Scan.TransferMode = ScanTransfer.Memory;
imageKit1.Scan.Compression = ScanCompression.None;
imageKit1.Scan.UserInterface = ScanUserInterface.Suppress;
imageKit1.Scan.Mode = ScanMode.DocumentPlate;
imageKit1.Scan.Unit = ScanUnit.Inch;
imageKit1.Scan.PaperSize = ScanPaperSize.UserSize; //あるいは負の値
//1箇所目
//読み取り領域を設定
imageKit1.Scan.Rect = new RectangleF(0, 0, 1, 1);
//他に必要な項目を設定
imageKit1.Scan.Execute();
//2箇所目
//読み取り領域を設定
imageKit1.Scan.Rect = new RectangleF(3, 3, 1, 1);
//他に必要な項目を設定
imageKit1.Scan.Execute();
imageKit1.Scan.CloseDataSource();
imageKit1.Scan.Terminate();
AfterScanイベントにもコードを記述してください。QNo.11も参照してください。
ADFの場合、同一用紙を連続でスキャンすることができませんので、再度用紙をADFに置いてからスキャンを実行してください。
|
|
12
|
Q. 開発者作成UIを使用してスキャナの用紙の自動検知機能を使用したいのですが、どうすればよいですか? |
2009/06/03 |
|
A. データソースが用紙の自動検知機能(未定義サイズ)をサポートしているのか確認してください。IsCapabilitySupportedメソッドで確認できます。
データソースが機能をサポートしている場合は、PaperSizeにUndefinedSizeを設定するだけではなくBorderDetectionにtrueを設定してお試しください。データソースによってはBorderDetectionの値に関係なく動作するものもあります。 |
|
11
|
Q. 開発者作成UIを使用してスキャナから用紙の一部を読み取るにはどうすればよいですか? |
2009/06/03 |
|
A.
(1)データソースが定型サイズをサポートしている場合
読み取り領域を設定し、PaperSizeにUserSizeもしくは負の値(用紙がA4なら-1)を設定してください。C#で負の値を設定する場合は型キャストを行ってください。
(2)データソースが定型サイズをサポートしていない場合
読み取り領域を設定し、PaperSizeにUserSizeを設定してください。
詳しくはヘルプのPaperSizeの解説をご覧ください。データソースがサポートしている用紙サイズはGetCapabilityEnumToSingleメソッドで取得できます。
|
|
10 |
Q. TWAINの標準Capabilityだけではなく各社独自のCustom Capabilitiyもサポートしていますか?
|
2010/04/26
更新 |
|
A. キヤノン、エプソン、パナソニック(敬称略)の3つのメーカのいくつかのCustom
Capabilitiyをサポートしています。
(1)キヤノン(DRスキャナ)
・ドロップアウトカラー
・用紙サイズ自動検知
・モアレ除去
・カラー白黒自動検知
・画像の回転
・文字向き検知
・エッジ強調
・白紙ページ除去
・パンチ穴除去
(2)エプソン
・拡張UIモード(全自動、ホーム、オフィス、プロフェッショナルなど)
・ADF使用時の裏面回転(裏面の向きを表面に合わせる)
・読み取り速度
・アンシャープマスク
・モアレ除去
・用紙サイズ自動検知
・ガンマ補正
・カラー白黒自動検知
・白紙ページ除去
・パンチ穴除去
・焦点位置調整 (FixNo.7で対応)
(3)パナソニック
・カラー白黒自動検知
・マルチストリーム
・ダイナミックスレッシュホールド
・読み取り速度
・画質
・デスキュースムージング
・白紙ページ除去
・パンチ穴除去
エプソン製スキャナをご利用の場合はFixNo.7(バージョン 2.0.1.10008)以降のモジュールをご利用ください。
|
|
9 |
Q. 新規にプロジェクトを作成し、フォームにコントロールを配置してからビルドするとエラーが発生するのですが? |
2009/06/03 |
|
A.
次に示すアセンブリファイルをプロジェクトの参照設定に追加してください。
WinForm
(1)ImageKit[Newtone.ImageKit.Win.ImageKit.dll]をお使いの場合
Newtone.ImageKit.Common.dll, Newtone.ImageKit.Effect.dll, Newtone.ImageKit.File.dll,
Newtone.ImageKit.Scan.dll
(2)Thumbnail[Newtone.ImageKit.Win.Thumbnail.dll]をお使いの場合
Newtone.ImageKit.Common.dll, Newtone.ImageKit.File.dll
(3)Play,Preview,Record[Newtone.ImageKit.Win.WebCamera.dll]をお使いの場合
Newtone.ImageKit.Common.dll
WebForm
(1)ImageKit[Newtone.ImageKit.Web.ImageKit.dll]をお使いの場合
Newtone.ImageKit.Common.dll, Newtone.ImageKit.File.dll
(2)Thumbnail[Newtone.ImageKit.Web.Thumbnail.dll]をお使いの場合
Newtone.ImageKit.Common.dll, Newtone.ImageKit.File.dll
アセンブリファイルは「ImageKit.NET2」をインストールしたフォルダの下のSystemフォルダにあります。
|
|
8
|
Q.
ラスタイメージの解像度を変更するにはどうすればよいですか? |
2009/06/03 |
|
A. 次の例を参考にしてください。
Imageプロパティの画像を300DPIに変更する場合
VB.NET :
Dim bmp As System.Drawing.Bitmap = ImageKit1.Image
bmp.SetResolution(300, 300)
ImageKit1.Image = bmp.Clone()
bmp.Dispose()
C# :
System.Drawing.Bitmap bmp = (System.Drawing.Bitmap)imageKit1.Image;
bmp.SetResolution(300, 300);
imageKit1.Image = (System.Drawing.Image)bmp.Clone();
bmp.Dispose();
|
7 |
Q. マルチTiffファイルを作成するにはどうすればよいですか? |
2009/06/03 |
|
A. 次の例を参考にしてください。
1.スキャナおよびデジタルカメラから取得した画像を保存する場合
VB.NET :
Dim Ret As Boolean
ImageKit1.File.FileName = "abc.tif" 'ファイル名
ImageKit1.File.TiffAppend = True 'マルチTiff
ImageKit1.Scan.Transfer = Newtone.ImageKit.ScanTransfer.Memory 'or
Newtone.ImageKit.ScanTransfer.Native
Ret = ImageKit1.Scan.Execute() 'スキャン
imageKit1.File.CloseMultiTiff() 'マルチTiffファイルをクローズする
※「File.SaveImageToFile」メソッド実行後に必ずこのメソッドを実行してください
'読み取りイベント
Private Sub ImageKit1_AfterScan(ByVal sender As Object, ByVal e As Newtone.ImageKit.AfterScanEventArgs) Handles ImageKit1.AfterScan
ImageKit1.File.SaveImageToFile(Newtone.ImageKit.SaveFileType.SaveTIFFNoncompressed,
e.Bitmap1)
End Sub
C# :
bool Ret;
imageKit1.File.FileName = "abc.tif"; //ファイル名
imageKit1.File.TiffAppend = true; //マルチTiff
imageKit1.Scan.Transfer = Newtone.ImageKit.ScanTransfer.Memory //or
Newtone.ImageKit.ScanTransfer.Native
Ret = imageKit1.Scan.Execute(); //スキャン
imageKit1.File.CloseMultiTiff(); //マルチTiffファイルをクローズする
※「File.SaveImageToFile」メソッド実行後に必ずこのメソッドを実行してください
//読み取りイベント
private void imageKit1_AfterScan(object sender, Newtone.ImageKit.AfterScanEventArgs e)
{
imageKit1.File.SaveImageToFile(Newtone.ImageKit.SaveFileType.SaveTIFFNoncompressed,
e.Bitmap1);
}
2.複数の画像ファイルを1つのファイルに保存する場合
VB.NET :
Dim I As Integer
ImageKit2.File.FileName = "abc.tif" 'ファイル名
ImageKit2.File.TiffAppend = True 'マルチTiff
ImageKit1.LayerNumber = -1
ImageKit1.File.LoadPage = 0
'001.jpg ... 005.jpgを1つにまとめる
For I = 1 To 5
ImageKit1.File.FileName = I.ToString("d03") + ".jpg" 'ファイル名
ImageKit1.File.LoadImageFromFile(Newtone.ImageKit.LoadFileType.Load)
ImageKit2.File.SaveImageToFile(Newtone.ImageKit.SaveFileType.SaveTIFFNoncompressed,
ImageKit1.Image)
Next I
imageKit2.File.CloseMultiTiff() 'マルチTiffファイルをクローズする
※「File.SaveImageToFile」メソッド実行後に必ずこのメソッドを実行してください
C# :
int i;
imageKit2.File.FileName = "abc.tif"; //ファイル名
imageKit2.File.TiffAppend = true; //マルチTiff
imageKit1.LayerNumber = -1;
imageKit1.File.LoadPage = 0;
//001.jpg ... 005.jpgを1つにまとめる
for (i = 1; i <= 5; i++)
{
imageKit1.File.FileName = i.ToString("d03") + ".jpg";
//ファイル名
imageKit1.File.LoadImageFromFile(Newtone.ImageKit.LoadFileType.Load);
imageKit2.File.SaveImageToFile(Newtone.ImageKit.SaveFileType.SaveTIFFNoncompressed,
imageKit1.Image);
}
imageKit2.File.CloseMultiTiff(); //マルチTiffファイルをクローズする
※「File.SaveImageToFile」メソッド実行後に必ずこのメソッドを実行してください
|
6
|
Q. サムネイルコントロール(WinForm)のサムネイル画像1個の大きさはどのように決まるのですか? |
2009/06/03 |
|
A. 表示するサムネイル画像の縦方向の数と横方向の数で決まります。そのため、サムネイルコントロールの大きさが同じであれば、サムネイルの行数と列数が少ない方が描画エリアは相対的に大きくなります。実際にはImageSizeプロパティとサムネイルのコマの大きさにより描画されるサイズが決まります。 |
5
|
Q.
サムネイルコントロール(WinForm)のDragDropイベントでドロップされたファイル名を取得するにはどうすればいいですか? |
2009/06/03 |
|
A. VB.NETとC#のサンプルコードを記載いたしますので参考にしてください。
VB.NET :
Private Sub Thumbnail1_DragDrop(ByVal sender As Object, ByVal e As
System.Windows.Forms.DragEventArgs) Handles Thumbnail1.DragDrop
Dim FileName As String() =
DirectCast(e.Data.GetData(DataFormats.FileDrop), String())
End Sub
C# :
private void thumbnail1_Private Sub
Thumbnail1_DragDrop(object
sender, System.Windows.Forms.DragEventArgs e)
{
string[] FileName = (string [])e.Data.GetData(DataFormats.FileDrop);
} |
4
|
Q.
エフェクト処理やスキャン処理をコンポーネントとしてではなく、クラスとして使用できますか? |
2009/06/03 |
|
A.
はい、使用できます。
クラスライブラリのリファレンスが付属しておりますので、そちらをご参考ください。 |
3
|
Q. ClickOnce には対応していますか? |
2009/06/03 |
|
A. はい、対応しています。
ImageKit.NET2 の製品紹介ページに ClickOnce のデモページへのリンクがございます。ご活用ください。
|
|
2
|
Q. インストール後、2週間ほど経ってから正常に動作しなくなりました。どうすればよいですか?
|
2009/06/03
|
|
A. ライセンス認証処理を行ってください。
詳しくは ImageKit.NET2 をインストールしたフォルダ下の "Tool\Activation" フォルダ内の「activation.pdf」ファイルを参照してください。
|
|
1
|
Q. Windows Vista に ImageKit.NET2 をインストールまたはアンインストールしようとしているのですが、「サポート担当者またはパッケージのベンダに問い合わせてください」というメッセージが表示され、インストールまたはアンインストールができません。
回避方法を教えてください。
|
2009/06/03 |
|
A. Windows Vista 上で次の設定を行ってください。
[コントロールパネル]→[クラシック表示]→[ユーザアカウント]→[ユーザアカウント制御の有効化または無効化]→[ユーザアカウント制御( UAC )を使ってコンピュータの保護に役立たせる]のチェックを外してください。
その後で、再度インストールまたはアンインストールを行ってください。
|