• 締切済み

ピクチャーボックスやイメージに表示せずに画像を保存する方法を教えて下さい。

開発環境はVB6.0です。 説明べたなので箇条書きで記入しました。 (1)ボタンを押す (2)Dドライブの中にあるJPGファイル(複数)をZドライブにコピー(もしくは移動) コピーでも移動でもどちらでもかまいませんが、なんせ異なったドライブにJPGファイルを写す方法を探しています。 VB上に画像を表示して保存する方法はわかりましたが、   Call SavePicture(Image1, "z:\meibo\a\1.jpg") これでは一気に保存することが出来ないのでとても困っています。 どなたか教えて下さい。よろしくお願いします。

みんなの回答

  • makohyu
  • ベストアンサー率60% (57/94)
回答No.4

あちらの掲示板ではスルーされてしまったようですね? ■回答例1 Private Sub Command1_Click() On Error GoTo ErrorProc Const strFileType = "*" '"jpg" Dim strBaseDir As String Dim strSrcDir As String Dim strDestDir As String Dim strGetDir As String strBaseDir = App.Path ' "C:\" strSrcDir = strBaseDir & "\o" strDestDir = strBaseDir & "\meibo\a" strGetDir = Dir(strSrcDir & "\*." & strFileType) Do Until strGetDir = "" FileCopy strSrcDir & "\" & strGetDir, strDestDir & "\" & strGetDir strGetDir = Dir() Loop ExitProc: Exit Sub ErrorProc: MsgBox Err.Description Resume ExitProc End Sub ■回答例2 Private Sub Command2_Click() On Error GoTo ErrorProc Const strFileType = "*" '"jpg" Dim strBaseDir As String Dim strSrcDir As String Dim strDestDir1 As String Dim strDestDir2 As String Dim strGetDir As String Dim copySrcPath As String Dim copyDestPath As String strBaseDir = App.Path ' "C:\" strSrcDir = "\o" strDestDir1 = "\meibo" strDestDir2 = "\a" ' 1.\o フォルダが存在するかを調査して、なければエラー。 strGetDir = Dir(strBaseDir & strSrcDir, vbDirectory) If strGetDir = "" Then MsgBox "コピー元フォルダ:" & strBaseDir & strSrcDir & " が存在しません。" GoTo ExitProc End If ' 2.\meibo フォルダが存在するかを調査して、なければ作成する。 strGetDir = Dir(strBaseDir & strDestDir1, vbDirectory) If strGetDir = "" Then MkDir strBaseDir & strDestDir1 End If ' 3.\meibo\a フォルダが存在するかを調査して、なければ作成する。 strGetDir = Dir(strBaseDir & strDestDir1 & strDestDir2, vbDirectory) If strGetDir = "" Then MkDir strBaseDir & strDestDir1 & strDestDir2 End If ' 4.コピー strGetDir = Dir(strBaseDir & strSrcDir & "\*." & strFileType) Do Until strGetDir = "" copySrcPath = strBaseDir & strSrcDir & "\" & strGetDir copyDestPath = strBaseDir & strDestDir1 & strDestDir2 & "\" & strGetDir FileCopy copySrcPath, copyDestPath strGetDir = Dir() Loop ExitProc: Exit Sub ErrorProc: MsgBox Err.Description Resume ExitProc End Sub ■そのほか、API SHFileOperation を使った方法 ■ファイル名、フォルダ名、パスについて Dim Source As String Dim Target As String Source = "z:\o" 'これは、フォルダパスです。 Target = "z:\meibo\a" 'これは、フォルダパスです。 Shell "Command.com /c " & Source & " " & Target Source、Targetには、"z:\o\IMGP0270.JPG"などと、ファイルパスを入れる必要があります。 一方、IMGP0270.JPG や IMGP0270 は、ファイル名です。 違いが分かります? Source = "z:\o" ではなく、 Source = "z:\o\*" になります。 「*」をつけると、"z:\o" にあるすべてのファイルという意味になります。 回答例1、回答例2を分析してみてください。 コピーという同じことをするのに、目的や使用方法によって大分違いますね。 「Visual Basic ファイル コピー」でググると、いろいろ検索できますよ。

  • makohyu
  • ベストアンサー率60% (57/94)
回答No.3

FileCopyステートメントは、1つのファイルをコピーするものです。 あるフォルダのファイルを複数または全部コピーするには、ループの中でFileCopyステートメントを実行するようにしましょう。 ですから、フォルダパスには"z:\o\~"や"z:\meibo\a\~"のようにダブルクォテーションでくくって文字列を直接記述するか、String型の変数に入れて記述する必要があります。 紹介したVisual Basic中学校の講座をざっと履修しないと、無理そうですね? >コピー元ファイル → Zドライブ内のoファイル内のjpgファイルを読み取りたいので ⇒z:\o と記入しました。 >コピー先ファイル ⇒ Zドライブ内のmeiboファイルのaファイル内にコピーしたいので ⇒ z:\meibo\a と記入しました。 「o」や「meibo」はファイルでなく、フォルダですよね。 フォルダとは何なのか、ファイルとは何なのか、パスとは何なのか、いろいろ勉強することがありそうですね。 あせらずに、楽しんで勉強することが一番の近道ですよ。 がんばってください!

arison01
質問者

お礼

返信ありがとうございます。 お勧めして頂いた「Visual Basic 中学校」はとっても役にたちました! しかし、ループ等まだまだ勉強不足な所がありますので引き続き勉強をしていきたいと思います。 また質問をした時等よろしくお願いします。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

プログラム作成に苦労して、難しく考えすぎになってませんか。 もちろん基本的にコピーといえども、ソフト(通常この場合はOS関連の機能の一部、ユテリティソフトなど)が読んで、所定のディスクのところへ書き出す、というプログラムが走ります。 またJpgファイルもファイル形式の詳細は私にはわかりませんので、画面表示プログラムを作れといわれるとできません。 しかし本質問の場合は、ファイルの中身がどうであれ、ファイル形式がどうであれ、コピーのファイルを作る場合は、内容に斟酌せずに、読んだ物を別のものにそのまま書くことでよいわけでしょう。この機能はコンピュター発達の初期から、OSソフト群には必ずこれだけの機能で備わっています。 例えばDosの時代からCopy他 コマンドはあります。VBでもcopyfile( VBscript)ガあります。 こういうものをプログラムの内部から、ファイル名をパラメータとして渡して、実行すればよいわけです。

arison01
質問者

お礼

返信ありがとうございます。 imogasiさんの回答を読んでいて私の知識不足がまともにできてた気がします。 1から勉強する必要があるなと思いながら期限が迫っているので自分に出来るのかとても不安が強くなりましたがしっかり勉強したいと思います。

  • makohyu
  • ベストアンサー率60% (57/94)
回答No.1

FileCopyステートメントでコピーできます。 FileCopy コピー元ファイルパス, コピー先ファイルパス Visual Basic 中学校というサイトをお勧めします。

参考URL:
http://homepage1.nifty.com/rucio/main/main.htm
arison01
質問者

お礼

返信ありがとうございます。 以下のように記入しました。 Private Sub Command3_Click() FileCopy z:\o, z:\meibo\a End Sub 以上のように記入すると コンパイルエラー: 修正補講:行番号 または 行ラベル または ステーメント または ステーメントの最後 というエラーが出てしまいしました。 コピー元ファイル → Zドライブ内のoファイル内のjpgファイルを読み取りたいので ⇒z:\o と記入しました。 コピー先ファイル ⇒ Zドライブ内のmeiboファイルのaファイル内にコピーしたいので ⇒ z:\meibo\a と記入しました。 記入の仕方が間違っているのでしょうか。

関連するQ&A

  • ピクチャーボックスやイメージに表示し、画像を保存する時に画像を移動させて保存する方法を教えて下さい。

    開発環境はVB6.0です。 イメージに表示させた画像を保存する方法は Private Sub Command2_Click() 'Picture1.Refresh Call SavePicture(Image1, "z:\meibo\a\1.jpg") End Sub ですが、この場合イメージに表示させた画像は元の場所にあるままなので、保存場所は違いますが、同じ絵の画像が2枚になります。 そうならないように画像を移動させる方法を探しています。 ご存知の方いらっしゃいましたらよろしくお願いします。

  • ピクチャボックスに描画した画像の保存

    VB6.0にて、 http://www.uploda.org/uporg898462.jpg このようなものを作成しました。 折れ線グラフはプログラムにて後から描画したもの、 それ以外の目盛りなどは最初からピクチャボックスに描画してあるものです。 pic1,pic2は共にピクチャボックスです。 赤い線で囲まれたpic1を目盛り、グラフ、その他のテキストボックスや文字と共に画像として保存したいのですが、 SavePicture Pic1.Image, "C:\SaveTest2.bmp" とすると、pic1の大きさの、何も描画されていない真っ白な画像が保存されてしまいます。 また、SavePicture Pic2.Image, "C:\SaveTest2.bmp" (pic2の保存) とすると、折れ線グラフのみが描画され、目盛りは無くなった画像が保存されてしまいます。 2つのピクチャ共にAutoRedraw=Trueを設定しています。 pic1を上手く保存する方法は無いでしょうか? ご教授、お願いします。

  • ピクチャーボックスの画像が欠けてしまいます。

    VB.NETとWinXPなのですが、 コマンドボタンを押して、ファイルダイアログボックスを開いて jpgファイルを指定するとピクチャーボックスにその 画像が表示されるようなものをつくっているのですが、 ピクチャーボックスの上に出るファイルダイアログボックスが重なっていた部分だけ画像が欠けてしまいます。 Picturebox1.Refresh()かなと思って試してみたのですが、今度は全部消えてしまいました。 良い方法があったら教えて頂きたいです。 よろしくお願いします。

  • 保存済みの画像ファイルが表示されない?

    ネットから保存したjpgの画像ファイルが表示されません。 解決方法のわかる方が、いらっしゃいましたら教えて頂きたいと思います。 (デルのサポートページを見てみましたが対処方法が載っていませんでした) 詳細 画像上で名前を付けて保存を選び、保存先の選択画面で フォルダを選択した時、保存先のフォルダ内に有るはずの jpgファイルが表示されません。 又、フォトショップなどで画像を開く際もファイルが表示されません。 ※Cドライブ→そのファイルにアクセスした場合は  jpgファイルが有りプレビューも出来ます。 OS  WindowsXP 機種  デルDimension 8250 です。 気になる点 以前使っていたWindows98で保存したjpgファイルを MOを使って移動しました。 このファイルの種類を見ると Dell Image Expert イメージとなっています。 この辺が関係あるのでしょうか? ※名前を付けて保存する際、上記のファイルは  保存先フォルダに表示されています。 どうか宜しくお願いします。

  • Pictureコントロールの画像の書き出し

    VB6において、PictureClipコントロールから切り出した画像を、Pictureコントロールにクリップし、更にその上にLineコマンドで線を描画しました。 その画像をSavePictureコマンドで、ファイルへ書き出したのですが、クリップした画像のみ書き出され、描画した内容が保存されません。 PictureコントロールのAutoRedrawプロパティはTrueにしてあります。 他に何か設定等が必要でしょうか? よろしくお願いします。

  • リストボックスの保存方法を教えてください

    初心者です。VB.NET(VBのケースでもいいです)で、リストボックスにファイルからデーターを読み込み、項目を一覧表示し、その項目を追加、削除し、更新した内容をファイルに保存したいのですが、 データーの読み込み、追加、削除、まではできたのですが、ファイルに保存する方法がわかりません。 リストの項目すべてを取得して保存する方法を教えてください。 よろしくお願い致します。

  • PictureBoxに表示されている画像の保存

    例えばVB6.0のPictureBoxに青→水色といったグラデーションの絵を、プログラムで書くとします。 その書かれた絵を画像ファイル(jpg,gif,bmp等)に保存するということは可能でしょうか? 別途、DLL等が必要になるのでしょうか? ご回答よろしくお願い致します。

  • 画像保存で

    こんばんわ! さっそく、質問です。 ネットで画像を保存する時にJPG保存にしたいのに、ビットマップ保存になってしまいます。JPGの選択肢がありません。 昔はJPGで保存できていました。 どうにかしてJPG保存に変えたいので操作の仕方を教えて下さい。 ファイル名の後ろについてるのを変えるという方法以外でおねがいします。

  • 画像検索で保存した画像が表示出来ない

    画像検索を使用して保存した画像の中に、拡張子がphpになっていて表示することが出来ないファイルがありました。 このファイルを表示する方法はありますか? どうして画像ファイルがphpで保存されてしまったのでしょうか? というか、このファイルは安全でしょうか? 検索設定で対象をjpgに指定してあるため、他のファイルはすべてjpgで保存されており、問題なく表示されています。ひとつだけ拡張子が違うファイルがあったので、気になって質問させて頂きました。 使用しているのはAndroidのスマートフォンです。 よろしくお願いしますm(_ _)m

  • My Pictureの表示ができない

    Windows XPからWindows7へマイピクチャーを移管したのですが、ファイルがWMF Fileで アイコンしかでません。XPにある縮小版の表示がありません。WMFファイルをJPGファイルで見る方法が教えてください。WMFファイルをプログラムワード2000で開いてJPGファイルに変換して保存すればできますが大変面倒です。