- PR -

印刷に描画するための画像ファイル(JPEG)はどのように保存するのですか。

投稿者投稿内容
One.net
大ベテラン
会議室デビュー日: 2008/03/01
投稿数: 202
投稿日時: 2008-07-02 23:07
【状況説明】
WindowsXP、VB2005EE Access2003 でWindowsアプリケーションを開発中です。
現在、印刷の背景描写用JPEG画像ファイル7枚をプロジェクトにあります
Imagesフォルダに保存し、次のように呼び出して描写しています。
引用:

Dim img As Image = Image.FromFile("Images\Image01.jpg")
Dim ulCorner As New Point(0, 0)
Dim urCorner As New Point(600, 0)
Dim llCorner As New Point(0, 750)
Dim destPara As Point() = {ulCorner, urCorner, llCorner}
e.Graphics.DrawImage(img, destPara) '--画像を読み込む


※Imagesフォルダの作成:プロジェクトを右クリック→追加→新しいフォルダ→「Images」名前設定
※画像ファイル7枚の保存:Imagesフォルダを右クリック→追加→既存の項目で画像ファイル7枚を選択保存

【質問内容】
このままではデバッグした場合、\bin\Debug フォルダ内にImagesフォルダがコピーされず、印刷を実行
すると当然エラーが発生します。やむなくImagesフォルダをDebug フォルダ内にコピーすると正常に
実行しましたのでそのまま使っていました。

ところがClickOnce で配置しようとしてもデバッグの場合と同様にImagesフォルダがWebサーバーに
アップロードされず、勿論配置もされません。(プロジェクト・プロパティの[発行]ページの
アプリケーションファイル画面のファイル名にも表示されません)
もともと描画に使う画像ファイルの保存方法が間違っていたものと思いますが、Imagesフォルダが
デバッグやClickOnce の配置にも正常にアップされるためには、どのようにImagesフォルダ設置すれば
よいのでしょうか。よろしくご指導下さい。

追加編集:プロジェクト・プロパティの[発行]ページの・・・・

[ メッセージ編集済み 編集者: One.net 編集日時 2008-07-02 23:37 ]
ヴァン
常連さん
会議室デビュー日: 2008/03/04
投稿数: 28
投稿日時: 2008-07-03 09:57
Imagesフォルダ、JPEG画像をプロジェクトに追加します。

ビルドアクションを「コンテンツ」に、出力ディレクトリを「常にコピーする」に設定します。

プロジェクトのプロパティの「発行」の「アプリケーションファイル」で画像ファイル(Imagesフォルダ名込み)の「発行の状況」が「追加」になっていることを確認してください。
テッテ
ベテラン
会議室デビュー日: 2008/03/16
投稿数: 91
投稿日時: 2008-07-03 10:09
使用目的が「印刷の背景描写用」なら、
外部ファイルにするんじゃなくて、
リソースとして埋め込んだほうが良いような気がします。

http://dobon.net/vb/dotnet/programing/vsresource.html
One.net
大ベテラン
会議室デビュー日: 2008/03/01
投稿数: 202
投稿日時: 2008-07-03 10:48
ヴァンさん、いつもありがとうございます。おかげさまでClickOnceでの配置もFTPを使って
アップロードすることを収得し、色々と体験しています。今回は画像ファイルのアップで困っています。
引用:

ヴァンさんの書き込み (2008-07-03 09:57) より:
Imagesフォルダ、JPEG画像をプロジェクトに追加します。
ビルドアクションを「コンテンツ」に、
出力ディレクトリを「常にコピーする」に設定します。


JPEG画像の保存したImagesフォルダをプロジェクトに追加。まではできていますが、
次の設定はどの画面を使っているのでしょうか
・ビルドアクションを「コンテンツ」に設定
・出力ディレクトリを「常にコピーする」に設定
いつもお手数をおかけしますが、よろしくお願いします。

ヴァンさん、上記の件わかりました。Imagesフォルダ内にあるJPEG画像のプロパティの設定ですね。
ビルドアクションは「コンテンツ」になっていましたが、出力ディレクトリは「コピーしない」と
なっていましたので、「常にコピーする」に7つの画像を変更します。
ありがとうございました。

編集:ヴァンさん、上記の件わかりました・・・を追加

[ メッセージ編集済み 編集者: One.net 編集日時 2008-07-03 12:06 ]
One.net
大ベテラン
会議室デビュー日: 2008/03/01
投稿数: 202
投稿日時: 2008-07-03 10:55
テッテさん、いつもすみません。
私も始めはリソースとして埋め込んだほうがと思ったのですが同じ画像が数箇所に使うため今回は外部ファイルとしましたが、一般的には印刷の背景描写用にはリソースとして埋め込むべきなのですね。下のサイトで勉強しましたがご指摘のサイトも勉強します。
http://www.atmarkit.co.jp/fdotnet/dotnettips/214resources1/resources1.html
http://www.atmarkit.co.jp/fdotnet/dotnettips/217resources2/resources2.html
http://www.atmarkit.co.jp/fdotnet/dotnettips/220resources3/resources3.html
ありがとうございました。

_________________


[ メッセージ編集済み 編集者: One.net 編集日時 2008-07-03 10:56 ]
One.net
大ベテラン
会議室デビュー日: 2008/03/01
投稿数: 202
投稿日時: 2008-07-07 09:14
スレッド主のOne.netです。
両先輩の指導を受けながら、いまだに画像ファイルを含めたClickOnce での配置を実現できなく困っています。
最初は外部ファイルによるImages画像を含めたアプリケーション配置を下記手順で試みました。
1.デバッグではbin\Debug\Images画像が作成され印刷も背景画像を含めて正常に印刷されました。
2.ビルドのプロジェクト発行もpublish\Project1_1_0_0_1\Images\Image1 画像が作成されました。
3.FTPクライアントでのアップロードも下記のMIMEタイプを設定し正常にUPできました。
※ .htaccess ファイルを作成
引用:

AddType application/x-ms-application application
AddType application/x-ms-manifest manifest
AddType application/octet-stream deploy


4.続いてプラウザからpublish.html のページで[インストール]ボタンを押して「アプリケーションの
インターネットーセキュリティ警告」までは正常に動作しますがインストールを始めると、次のような
エラーだ発生してしまいます。
「アプリケーションをダウンロードできません。アプリケーションに必要なファイルが不足しています。」

この問題を解決すべくさまざまな試みを行ってみましたが、いまだImage画像を含めたClickOnce
配置が成功していません。以下手順の詳細を下に連記いたしますので、なにとぞよろしくご指導下さい。

【詳細説明】
◆画像を含めないでのClickOnce で配置及び更新処理は、すでに正常に動作します。(上記MIMEタイプ設定して)
◆画像を含めたClickOnce で配置は、全てのJPEG画像ファイルプロパティに次のような設定をしました。
・ビルドアクション:「コンテンツ」
・出力ディレクトリ:「常にコピーする」
◆エラーの詳細を見ますと「Images/Image1.jpg.deploy のダウンロードに失敗しました。
+ リモート サーバーがエラーを返しました: (404) 見つかりません。」とJPEG画像で失敗しているようです。
引用:

この操作中に次のエラーが検出されました。
* [2008/07/06 16:51:28] System.Deployment.Application. _
DeploymentDownloadException(不明な subtype)
- http://www.○○.com/○○/html/○○/Project1_1_0_0_1/Images/Image1.jpg.deploy
のダウンロードに失敗しました。
- ソース: System.Deployment
- スタック トレース:
場所 System.Deployment.Application.SystemNetDownloader.--以下省略
場所 System.Deployment.Application.SystemNetDownloader.--以下省略
場所 System.Deployment.Application.FileDownloader.--------以下省略
場所 System.Deployment.Application.DownloadManager.------以下省略
場所 System.Deployment.Application.ApplicationActivator----以下省略
場所 System.Deployment.Application.ApplicationActivator.----以下省略
場所 System.Deployment.Application.ApplicationActivator.----以下省略
場所 System.Deployment.Application.ApplicationActivator.----以下省略
--- 内部例外 ---
System.Net.WebException
- リモート サーバーがエラーを返しました: (404) 見つかりません。
- ソース: System
- スタック トレース:
場所 System.Net.HttpWebRequest.GetResponse()


◆Image1ファイル固有の問題と仮想して、Image2 やImage3 に変更してテストしたが同一エラー発生
◆MIMEタイプを設定にjpeg対応を考慮して「AddType image/jpeg jpeg jpg jpe」を加えたが同一エラー発生
◆外部リソース・ファイルとしてImage1をリソースに設定し同様のテスト(詳細省略)を行いましたが結果は同じで、
同一エラー発生しました。
(【手順】プロジェクト・プロパティの「リソース画面」上部にある[リソースの追加]ボタンで「既存のファイルの追加」から
Image画像を設定し、それぞれのプロパティを「コンテンツ」及び「常にコピーする」に設定。あとは外部ファイル
による手順と同じ)

以上詳細説明を連記しましたが、よろしくご指導をお願いいたします。
ヴァン
常連さん
会議室デビュー日: 2008/03/04
投稿数: 28
投稿日時: 2008-07-07 10:11
まずローカルに発行した publish フォルダ内に \Project1_1_0_0_1\Images\Image1.jpg.deploy が存在するか確認してください。(Imagesは全角文字?)

存在する場合、それがFTPでアップされているか確認してください。フォルダ位置も含めて。

One.net
大ベテラン
会議室デビュー日: 2008/03/01
投稿数: 202
投稿日時: 2008-07-07 10:36
ヴァンさん、いつもありがとうございます。
引用:

ヴァンさんの書き込み (2008-07-07 10:11) より:
まずローカルに発行した publish フォルダ内に Project1_1_0_0_1ImagesImage1.jpg.deploy が存在するか確認してください。(Imagesは全角文字?)


publish フォルダ内にmikoshi_1_0_0_1\Resources\Z_200納.jpg.deploy が存在しています。
そしてヴァンさんからの指摘でファイル名に全角文字「納」が含まれていることに気づきました。
このステッドに投稿するに当りファイル名の説明が面倒なのでImage1と書き換えて投稿しました。
引用:

存在する場合、それがFTPでアップされているか確認してください。フォルダ位置も含めて。


フォルダ位置も含めて確認いたしました。

上記したとおりファイル名を半角英数文字に変更してテストし、結果を報告いたします。
とりあえず、ありがとうございました。

スキルアップ/キャリアアップ(JOB@IT)