ニュートン メニュー

株式会社ニュートン

マイクロソフトパートナー

YouTube公式チャンネル

体験版ダウンロード

製品案内

ライセンスパック

ライセンスについて

カスタマイズ受付

製品購入ガイド

オンラインショップ
直販ショップ !
ニュートンストアで購入
コンポーネントソース
コンポーネントソースで購入

優待販売・
 キャンペーン情報

ユーザサービス
〔サポートページ〕

サポート体制

お知らせ
・ニュースリリース
・イベント出展
・製品関連記事

会社概要

個人情報保護方針

お問い合わせ先

 
ニュートンホーム Q&A
ImageKit.NET

イメージ処理 .NET コンポーネント
ImageKit.NET

このページは、ImageKit.NET関連のユーザ様より寄せられたご質問の一部とその回答を掲載しております。


【ImageKit.NET Q&A一覧】

QNo.

Q.質問

日付

A.回答

20

Q. TWAINを利用したアプリケーションを64ビットOSで運用できますか?

2009/03/31

A. はい、32ビットアプリケーションとして運用できます。
ただし、Visual Studio 2005や2008でアプリケーションを開発される場合はプラットフォームターゲットを「x86」にしてビルドする必要があります(「any CPU」でビルドすると64ビットOSでは動作いたしません)。

19

Q. Visual Studio 2005や2008のデバッグモードでエフェクト処理やスキャン処理を実行すると、EXE単独の実行に比べて処理時間がかなり遅くなります。どうすればよいですか?

2009/03/31

A. マネージデバッグアシスタント(MDA)を無効化してください。詳しくは下記を参照してください。
http://msdn.microsoft.com/ja-jp/library/d21c150d.aspx

18

Q. 画像を左右反転もしくは上下反転するにはどうすればよいですか?

2009/02/24

A. Effect.Rotationメソッドを使用します。引数のangleを0にし、xTurn をtrueにすると左右反転、yTurnをtrueにすると上下反転になります。xTurn,yTurnを両方trueにすると上下左右反転となります。

17

Q. 開発者作成UIを使用してスキャナから用紙の複数の領域を読み取るにはどうすればよいですか?

2008/07/16

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.13も参照してください。
ADFの場合、同一用紙を連続でスキャンすることができませんので、再度用紙をADFに置いてからスキャンを実行してください。

16

Q. 開発者作成UIを使用してスキャナの用紙の自動検知機能を使用したいのですが、どうすればよいですか?

2008/07/16

A. データソースが用紙の自動検知機能(未定義サイズ)をサポートしているのか確認してください。IsCapabilitySupportedメソッドで確認できます。
データソースが機能をサポートしている場合は、PaperSizeにUndefinedSizeを設定するだけではなくBorderDetectionにtrueを設定してお試しください。データソースによってはBorderDetectionの値に関係なく動作するものもあります。

15

Q. Windows VistaにImageKit.NETをインストールまたはアンインストールしようとしているのですが、「サポート担当者またはパッケージのベンダに問い合わせてください」というメッセージが表示され、インストールまたはアンインストールができません。
回避方法を教えてください。

2008/06/27

A. Windows Vista上で次の設定を行ってください。
[コントロールパネル]→[クラシック表示]→[ユーザアカウント]→[ユーザアカウント制御の有効化または無効化]→[ユーザアカウント制御(UAC)を使ってコンピュータの保護に役立たせる]のチェックを外してください。
その後で、再度インストールまたはアンインストールを行ってください。

14

Q. ImageKitコントロールやイメージにテキストを描画するにはどうすればよいですか?

2008/02/21

A. 次の例を参考にしてください。

1.コントロールにテキストを描画する場合
VB.NET :
Dim g As Graphics = ImageKit1.CreateGraphics()
Dim drawFont As Font = new Font("Arial", 16)
Dim drawBrush As SolidBrush = new SolidBrush(Color.Black)
g.DrawString("Sample Text", drawFont, drawBrush, 150.0, 50.0)
g.Dispose()
※イメージを再描画するとテキストは消えます。

C# :
Graphics g = imageKit1.CreateGraphics();
Font drawFont = new Font("Arial", 16);
SolidBrush drawBrush = new SolidBrush(Color.Black);
g.DrawString("Sample Text", drawFont, drawBrush, 150.0F, 50.0F);
g.Dispose();
※イメージを再描画するとテキストは消えます。

2.イメージにテキストを描画する場合
VB.NET :
Dim bitCount As Integer = ImageKit1.BitCount
If bitCount <= 8 Then
  ImageKit1.Effect.SourceMask = Nothing
  ImageKit1.Effect.ConvertColor(24, False, False, 128)
End If
Dim newImage As Image = ImageKit1.Image
Dim newGraphics As Graphics = Graphics.FromImage(newImage)
Dim drawFont As Font = New Font("Arial", 16)
Dim drawBrush As SolidBrush = New SolidBrush(Color.Black)
newGraphics.DrawString("Sample Text", drawFont, drawBrush, 150.0, 50.0)
newGraphics.Dispose()
ImageKit1.Image = newImage
If bitCount <= 8 Then
  ImageKit1.Effect.ConvertColor(bitCount, False, False, 128)
End If
C# :
int bitCount = imageKit1.BitCount;
if (bitCount <= 8)
{
  imageKit1.Effect.SourceMask = null;
  imageKit1.Effect.ConvertColor(24, false, false, 128);
}
Image newImage = imageKit1.Image;
Graphics newGraphics = Graphics.FromImage(newImage);
Font drawFont = new Font("Arial", 16);
SolidBrush drawBrush = new SolidBrush(Color.Black);
newGraphics.DrawString("Sample Text", drawFont, drawBrush, 150.0F, 50.0F);
newGraphics.Dispose();
imageKit1.Image = newImage;
if (bitCount <= 8)
  imageKit1.Effect.ConvertColor(bitCount, false, false, 128);
imageKit1.Refresh();

13

Q. 開発者作成UIを使用してスキャナから用紙の一部を読み取るにはどうすればよいですか?

2008/02/21

A.
(1)データソースが定型サイズをサポートしている場合
読み取り領域を設定し、PaperSizeにUserSizeもしくは負の値(用紙がA4なら-1)を設定してください。C#で負の値を設定する場合は型キャストを行ってください。
(2)データソースが定型サイズをサポートしていない場合
読み取り領域を設定し、PaperSizeにUserSizeを設定してください。

詳しくはヘルプのPaperSizeの解説をご覧ください。データソースがサポートしている用紙サイズはGetCapabilityEnumToSingleメソッドで取得できます。

12

Q. バージョン 1.0.2003.10003 以降、Effectサンプルのマスク処理ができなくなりました。

2007/12/28
更新

A. バージョン 1.0.200*.10009 以降に付属のサンプルを御使用ください。

※ImageKitコントロールのImageプロパティから作成したイメージ(イコール代入やCloneメソッドで作ったもの等)をそのまま参照して、 再び自分自身のImageプロパティを設定することはできません。
このような使い方をする場合は、別のImageKitコントロールや、その他のコントロールのイメージを使用してください。


バージョン 1.0.200*.10009 にて上記の現象を修正しました。

例:EffectでUndo機能を持たせたい場合(VB.NETの例)
*ImageKit1 のファイルロード時に、別のImageにオリジナルイメージを設定
Dim OrgImage As Image
OrgImage = ImageKit1.Image.Clone()
*[Undo]ボタンクリックで、エフェクト処理したイメージを元に戻す
ImageKit1.Image = OrgImage.Clone()
ImageKit1.Image.Display(DisplayMode.Scale)

11

Q. 作成したアプリケーションが3ヶ月ほど経ってから正しく動作しなくなりました。どうすればよいですか?

2007/08/10

A. ライセンス処理を行ってください。

※複数のコントロールを使用する場合や、クラスライブラリを使用する場合は、使用するもの全てについて記述する必要があります。
詳しくは"ImageKitNETLIC.msi"をインストールしたフォルダ内のテキストファイルを参照してください。

10

Q. TWAINの標準Capabilityだけではなく各社独自のCustom Capabilitiyもサポートしていますか?

2008/09/01
更新

A. エプソン、パナソニック、キヤノンの3つのメーカのいくつかのCustom Capabilitiyをサポートしています。

(1)エプソン
・拡張UIモード(全自動、ホーム、オフィス、プロフェッショナルなど)
・ADF使用時の裏面回転(裏面の向きを表面に合わせる)
・読み取り速度
・アンシャープマスク
・モアレ除去
・自動用紙検知
(2)パナソニック
・白黒/カラー自動判別
・マルチストリーム
・ダイナミックスレッシュホールド
・読み取り速度
・画質
・デスキュースムージング
(3)キヤノン(DRスキャナ)
・ドロップアウトカラー
・自動用紙検知
・モアレ除去 (FixNo.16で対応)
・カラー白黒検知 (FixNo.16で対応)
・画像の回転 (FixNo.16で対応)
・文字向き検知 (FixNo.17で対応)

キヤノンのDRスキャナをご利用の場合はFixNo.4(バージョン 1.0.200*.10003)以降のモジュールをご利用ください。
キヤノンのDRスキャナをご利用の場合はFixNo.16(バージョン 1.0.200*.10017)以降のモジュールをご利用ください。
キヤノンのDRスキャナをご利用の場合はFixNo.17(バージョン 1.0.200*.10018)以降のモジュールをご利用ください。

9

Q. Visual Studio 2005で新規にプロジェクトを作成し、フォームにコントロールを配置してからビルドするとエラーが発生するのですが?

2007/04/18

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

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.NET」をインストールしたフォルダの下のSystemフォルダにあります。

8

Q. ユーザ専用ページから最新のアセンブリをダウンロードして適用するとエラーが発生するのですが?

2007/02/02

A. お使いのアセンブリのバージョンによりプロパティ名などが変更されております。ユーザ専用ページから「ImageKitNET変更項目.pdf」をダウンロードし、その内容に応じた変更をお願い致します。

7

Q. ラスタイメージの解像度を変更するにはどうすればよいですか?

2007/10/03
更新

A. 次の例を参考にしてください。

Imageプロパティの画像を300DPIに変更する場合
VB.NET :
Dim bmp As System.Drawing.Bitmap = ImageKit1.Image.Clone()
bmp.SetResolution(300, 300)
ImageKit1.Image = bmp.Clone()
C# :
System.Drawing.Bitmap bmp = (System.Drawing.Bitmap)imageKit1.Image.Clone();
bmp.SetResolution(300, 300);
imageKit1.Image = (System.Drawing.Image)bmp.Clone();

6

Q. マルチTiffファイルを作成するにはどうすればよいですか?

2007/07/27
更新

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ファイルをクローズする
※バージョン「1.0.2003.10006」以降をお使いの場合は、「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ファイルをクローズする
※バージョン「1.0.2003.10006」以降をお使いの場合は、「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ファイルをクローズする
※バージョン「1.0.2003.10006」以降をお使いの場合は、「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ファイルをクローズする
※バージョン「1.0.2003.10006」以降をお使いの場合は、「File.SaveImageToFile」メソッド実行後に必ずこのメソッドを実行してください

5

Q. サムネイルコントロール(WinForm)のサムネイル画像1個の大きさはどのように決まるのですか?

2006/09/29

A. 表示するサムネイル画像の縦方向の数と横方向の数で決まります。そのため、サムネイルコントロールの大きさが同じであれば、サムネイルの行数と列数が少ない方が描画エリアは相対的に大きくなります。実際にはImageSizeプロパティとサムネイルのコマの大きさにより描画されるサイズが決まります。

4

Q. サムネイルコントロール(WinForm)のDragDropイベントでドロップされたファイル名を取得するにはどうすればいいですか?

2006/09/19

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);
}

3

Q. エフェクト処理やスキャン処理をコンポーネントとしてではなく、クラスとして使用できますか?

2006/08/11

A. はい、使用できます。
2006/08/11付けでクラスライブラリのリファレンスを公開いたしましたので、そちらをご参考ください。

2

Q. ClickOnce には対応していますか?

2006/07/10

A. はい、対応しています。
ImageKit.NET の製品紹介ページにClickOnceのデモページへのリンク がございます。ご活用ください。

1

Q. ノータッチ デプロイメント には対応していますか?

2006/07/10

A. はい、対応しています。
ImageKit.NET の製品紹介ページにノータッチ デプロイメントのデモページへのリンクがございます。ご活用ください。

Copyright (C) NEWTONE Corporation. All rights reserved.