QNo.
|
Q.質問
|
日付
|
A.回答
|
13
|
Q. Visual Studio の画面のデザインでエラーが発生します。(ImageKit WPF X)
|
2024/03/25
|
A. プロジェクトを作成する時に下記のNuGetパッケージをインストールしてください。
.NET5.0 プロジェクトの場合:System.Drawing.Common 6.0.0
.NET6.0 プロジェクトの場合:System.Drawing.Common 6.0.0 〜 8.0.3
.NET7.0 プロジェクトの場合:System.Drawing.Common 6.0.0 〜 8.0.3
.NET8.0 プロジェクトの場合:System.Drawing.Common 6.0.0 〜 8.0.3
|
12
|
Q. Visual Studio 2022 のプロジェクトで ImageKit.WPF X が使用できません。(ImageKit WPF X)
|
2024/03/07
|
A. プロジェクトのプロパティで以下の項目を次のように変更してください。
(1)「アプリケーション」→「全般」
・Windows フォーム:「このプロジェクトで Windows フォームを有効にします」
・Windows Presentation Foundation:「このプロジェクトで WPF を有効にします」
の2つにチェックを入れる
(2) 「global using」→「全般」
・暗黙的な global using:「プロジェクト SDK によって宣言される、暗黙的な global using を有効にします」
のチェックを外す
|
11
|
Q. 製品版を使用し、Visual Studio で新規にプロジェクトを作成して ImageKit のパッケージをインストールして、ImageKit コントロールを Form に貼り付けようとすると、ツールボックスにコントロールが表示されなかったり、貼り付けても体験版になったりしてしまいます。
(ImageKit WPF X)
|
2023/12/13
|
A. PC に何らかの古い情報が残っている可能性がありますので、NuGet のストレージをクリアしてください。
具体的には、以下のいずれかの方法でクリアしてください。
[1] Visual Studio から操作する
@ メニューの「ツール」から「NuGetパッケージマネージャー」→「パッケージマネージャー設定」を開く
A パッケージマネージャー設定の「全般」のページで「すべてのNuGet のストレージをクリア」ボタンを押す
(ImageKit WPF 関連だけではなく使用歴があるすべての NuGet パッケージのキャッシュがクリアされますが、作成済みのプロジェクトを再度開けば問題なく使用できます。)
[2] Windows のエクスプローラーで ImageKit WPF 関連のパッケージのみクリアする
@ 「ユーザー」フォルダ下の[現在のログオン名]のフォルダーを開く
A その中の「.nuget\packages」フォルダーを開いて、ImageKit WPF 関連のパッケージを削除する
(フォルダー名の例:C:\Users\現在のログオン名\.nuget\packages)
|
10
|
Q. 画像の表示で、ピンチイン・ピンチアウトができません。
|
2021/02/09
|
A. ピンチイン・ピンチアウトが可能な条件は、以下のとおりです。
・画像の実寸表示
・スクロールバーが非表示
・編集処理で線や四角形などのオブジェクトが選択中でない
|
9
|
Q. (タッチ操作への対応などで)スクロールバーの幅を変更するにはどうすればよいですか?
|
2020/11/30
|
A. App.xaml に下記のようにコードを追加してください。
( スクロールバーの幅を 50 にする例です。)
・xmlns:sys="clr-namespace:System;assembly=mscorlib"
・<sys:Double x:Key="{x:Static SystemParameters.VerticalScrollBarWidthKey}">50</sys:Double>
・<sys:Double x:Key="{x:Static SystemParameters.HorizontalScrollBarHeightKey}">50</sys:Double>
<Application x:Class="WpfApplication1.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
StartupUri="MainWindow.xaml">
<Application.Resources>
<sys:Double x:Key="{x:Static SystemParameters.VerticalScrollBarWidthKey}">50</sys:Double>
<sys:Double x:Key="{x:Static SystemParameters.HorizontalScrollBarHeightKey}">50</sys:Double>
</Application.Resources>
</Application>
|
8
|
Q. Administrator 権限を持つユーザアカウントで Windows にログインしている場合に、ImageKit のライセンス認証が正しく完了しているのに、開発環境で ImageKit コントロールなどを貼り付けようとすると「ライセンスが無効」のエラーが発生します。
|
2018/06/05
|
A. ImageKit WPF では、ライセンス認証とは別に、製品版としての情報をインストール時にレジストリに書き込んでいます。ところが、一般ユーザアカウントで Administrator 権限を付与してもレジストリに情報を書き込むことはできないため、当該のエラーが発生します。
従ってこの場合は、ImageKit WPF のインストールも管理者として行ってください。
具体的には、Setup.exe を右クリックして「管理者として実行」でインストールするか、ImageKitWPF.msi を使用される場合は、コマンドラインから「管理者用インストール オプション」を使用してインストールしてください。構文は以下のとおりです。
msiexec /i ImageKitWPF.msi
(※開発時には、開発環境も管理者として起動してください。)
|
7
|
Q. 描画済みのアノテーションオブジェクトの情報を、コードで取得したり編集したりすることは可能でしょうか? / オブジェクトを右クリックして「プロパティ」から表示されるダイアログボックスで内容変更するのと同様のことをコードで実現できますか?
|
2017/11/20
|
A. 可能です。
単独選択されたオブジェクトの諸情報が「ImageKit.Edit.SelectedObject〜」という各プロパティで取得・設定が可能ですので、以下のコード例のように、オブジェクトを順次選択し、選択されたオブジェクトの各情報の条件によって必要な処理をする、といった方法で実現可能です。
※例:オブジェクトの種類が直線なら色を青に変える
VB.NET :
For i As Integer = 1 To imageKit1.Edit.NumberOfObjects
imageKit1.Edit.SelectObject(i)
If imageKit1.Edit.SelectedObjectKind = Newtone.ImageKit.Win.KindOfEdit.Line Then
imageKit1.Edit.SelectedObjectForeColor = Colors.Blue
End If
imageKit1.Edit.DeselectObjects()
Next
C# :
for (int i = 1; i <= imageKit1.Edit.NumberOfObjects; i++)
{
imageKit1.Edit.SelectObject(i);
if (imageKit1.Edit.SelectedObjectKind == KindOfEdit.Line)
imageKit1.Edit.SelectedObjectForeColor = Colors.Blue;
imageKit1.Edit.DeselectObjects();
}
|
6
|
Q. ImageKit WPF を利用したアプリケーションが、インターネットに繋がっていない環境だと、起動するのにかなり時間がかかってしまいます。回避策はありますか?
|
2017/11/20
|
A. ImageKit WPF のアセンブリ (dll) にはデジタル署名を付加しているので、アプリケーションが使用するアセンブリの有効性を確認するために CRL(「証明書失効リスト」)のダウンロード処理を行います。
インターネットに接続していない環境でアプリケーションの起動が遅くなるのは、タイムアウトになるまで CRL のダウンロードを繰り返し試みてしまうことが原因です。
インターネットに接続していないマシンで使用する場合の回避方法として、以下の手順により CRL のダウンロードを実行しないように設定してください。
(CRL をダウンロードしない場合でも ImageKit WPF を利用することは可能です。)
1. [コントロール パネル] - [インターネット オプション] を実行します。
2. [インターネットのプロパティ] ダイアログで [詳細設定] タブ を選択します。
3. [発行元証明書の取り消しを確認する] のチェックボックスをオフします。
また、アプリケーション名 .exe.config に以下の行を追加することにより、アプリケーション開始時の署名検証を無効にすることもできます。
<configuration>
<runtime>
<generatePublisherEvidence enabled="false"/>
</runtime>
</configuration>
製品にはデジタル署名なしのアセンブリ(dll)も含まれておりますので、そちらを使用する方法もあります。
|
5
|
Q. 64ビットアプリケーションで TWAIN を利用できますか?
|
2017/11/20
|
A. はい、アプリケーションを[Any CPU]または[x64]でビルドし、64ビットのスキャナドライバを使用すれば可能です。
|
4
|
Q. Visual Studioのデバッグモードでエフェクト処理やスキャン処理を実行すると、EXE単独の実行に比べて処理時間がかなり遅くなります。どうすればよいですか?
|
2017/11/20
|
A. マネージデバッグアシスタント(MDA)を無効化してください。詳しくは下記を参照してください。
http://msdn.microsoft.com/ja-jp/library/d21c150d.aspx
|
3
|
Q. マルチ Tiff ファイルを作成するにはどうすればよいですか?
|
2017/11/20
|
A. 次の例を参考にしてください。
1.スキャナおよびデジタルカメラから取得した画像を保存する場合
VB.NET :
Dim Ret As Boolean
ImageKit1.File.FileName = "abc.tif" 'ファイル名
ImageKit1.Scan.Transfer = Newtone.ImageKit.ScanTransfer.Memory 'or
Newtone.ImageKit.ScanTransfer.Native
Ret = ImageKit1.Scan.Execute() 'スキャン
'読み取りイベント
Private Sub ImageKit1_AfterScan(ByVal sender As Object, ByVal e As Newtone.ImageKit.AfterScanEventArgs) Handles ImageKit1.AfterScan
'下記のいずれかを実行
'最後のページに追加
ImageKit1.File.AppendTiffImage(Newtone.ImageKit.SaveFileType.SaveTIFFNoncompressed, e.Bitmap1)
'3ページ目に挿入
ImageKit1.File.InsertPageIntoMultipageTiff(Newtone.ImageKit.SaveFileType.SaveTIFFNoncompressed, e.Bitmap1, 3)
End Sub
C# :
bool Ret;
imageKit1.File.FileName = "abc.tif"; //ファイル名
imageKit1.Scan.Transfer = Newtone.ImageKit.ScanTransfer.Memory //or
Newtone.ImageKit.ScanTransfer.Native
Ret = imageKit1.Scan.Execute(); //スキャン
//読み取りイベント
private void imageKit1_AfterScan(object sender, Newtone.ImageKit.AfterScanEventArgs e)
{
//下記のいずれかを実行
//最後のページに追加
imageKit1.File.AppendTiffImage(Newtone.ImageKit.SaveFileType.SaveTIFFNoncompressed, e.Bitmap1);
//3ページ目に挿入
imageKit1.File.InsertPageIntoMultipageTiff(Newtone.ImageKit.SaveFileType.SaveTIFFNoncompressed, e.Bitmap1, 3);
}
2.複数の画像ファイルを1つのファイルに保存する場合
VB.NET :
Dim I As Integer
ImageKit2.File.FileName = "abc.tif" 'ファイル名
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()
ImageKit2.File.AppendTiffImage(Newtone.ImageKit.SaveFileType.SaveTIFFNoncompressed, e.Bitmap1)
Next I
C# :
int i;
imageKit2.File.FileName = "abc.tif"; //ファイル名
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();
imageKit2.File.AppendTiffImage(Newtone.ImageKit.SaveFileType.SaveTIFFNoncompressed, e.Bitmap1);
}
|
2
|
Q. エフェクト処理やスキャン処理をコンポーネントとしてではなく、クラスとして使用できますか?
|
2017/11/20
|
A. はい、使用できます。
クラスライブラリのリファレンスが付属しておりますので、そちらをご参考ください。
|
1
|
Q. インストール後、2週間ほど経ってから正常に動作しなくなりました。どうすればよいですか?
|
2017/11/20
|
A. ライセンス認証処理を行ってください。
詳しくは ImageKit WPF をインストールしたフォルダ下の "Tool\Activation" フォルダ内の「activation.pdf」ファイルを参照してください。
|