C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[9]: 画像縮小


(過去ログ 132 を表示中)

[トピック内 16 記事 (1 - 16 表示)]  << 0 >>

■78251 / inTopicNo.1)  画像縮小
  
□投稿者/ ぎみっく (2回)-(2015/12/29(Tue) 20:08:19)

分類:[.NET 全般] 

画像の縮小を行いたくて
あちこちに聞きながら行ってみたのですが
保存時にパラメータエラーが発生します
どう修正していいか
教えていただけますでしょうか?





Imports System.Drawing

private sub pic()
dim img as bitmap = image.fromfile(c:\hp\cc.jpg)
dim tate as integer = img.height
dim yoko as integer = image.width
'比率
dim tateyoko as integer
dim resize(1) as single
dim kotei as integer = 300
tateyoko = tate / yoko
select case tateyoko
case is 〉1 '縦長
resize(1) = kotei
resize(0) = kotei/tateyoko
case is 〈 1'横長
resize(1) = kotei/tateyoko
resize(0) = kotei
end select
dim saveimage as new bitmap(img,resize(0),resize(1))
saveimage.save(c:\hp\cc-2.jpg)

引用返信 編集キー/
■78252 / inTopicNo.2)  Re[1]: 画像縮小
□投稿者/ WebSurfer (755回)-(2015/12/29(Tue) 20:29:42)
No78251 (ぎみっく さん) に返信

質問者さんは複数のハンドルを使いまわしていませんか? もしそうなら「利用方法/規約」に
あるように一貫して同じハンドルを使用していただくようお願いします。

> 保存時にパラメータエラーが発生します

どの行でどういうエラーメッセージが出るのか書いてください。エラーメッセージには重要な情
報が含まれています、省略しないできちんと書くようにしてください・・・と書いたのですが、
コードを見るとコンパイラさえ通らないように見えます。違います?
引用返信 編集キー/
■78253 / inTopicNo.3)  Re[2]: 画像縮小
□投稿者/ ぎみっく (3回)-(2015/12/29(Tue) 23:51:52)
No78252 (WebSurfer さん) に返信

名前は1つしか使っていませんが
共有のパソコンではだめなんでしょうか?

エラーは下から2行目の
dim saveimage as new bitmap(img,resize(0),resize(1))
のところでパラメータエラーが出ます
引用返信 編集キー/
■78254 / inTopicNo.4)  Re[3]: 画像縮小
□投稿者/ Azulean (563回)-(2015/12/30(Wed) 07:54:38)
デバッグしてみてください。
例外で止まったときに resize(0) および resize(1) がどうなっているか、カーソルを合わせるなどすると確認できますので確認してみてください。
それが思ってもいない値になっているときは、計算過程の変数も確認してみてください。

(たぶん、どちらかが 0 になっているのでは?)
引用返信 編集キー/
■78258 / inTopicNo.5)  Re[3]: 画像縮小
□投稿者/ WebSurfer (756回)-(2015/12/30(Wed) 10:51:46)
No78253 (ぎみっく さん) に返信

> 名前は1つしか使っていませんが
> 共有のパソコンではだめなんでしょうか?

ぎみっくさんが立てた別のスレッド(URL 下記)を見て、

http://bbs.wankuma.com/index.cgi?mode=al2&namber=78110

「ぎみっく」さん = 「NOVO」さん

だと思ったのですが、「ぎみっく」さんと「NOVO」さんは別人で共有パソコン
を使ってレスを書いたということですか? それにしては話の流れが不自然だ
と思ったのですが・・・ 何にせよもし別人でしたら失礼しました。

ついでにもう一つ言わせていただけると、上記 URL のスレッドは回答が出て
いますが放置状態になっています。きちんと最後までフォローしていただけま
せんか?


> エラーは下から2行目の
> dim saveimage as new bitmap(img,resize(0),resize(1))
> のところでパラメータエラーが出ます

VB.NET のプログラムですよね?

試しに質問者さんがアップされたコードをそのまま自分の環境(Vista
SP2 32-bit, VS2010 Pro, .NET 4 のコンソールアプリ)にコピペしてみ
たのですが、下から 2 行目どころか、上から 2 行目の、

dim img as bitmap = image.fromfile(c:\hp\cc.jpg)

からすでにエラーでコンパイルさえできません。

VB.NET は詳しくないので自分の思い違いかもしれませんが c:\hp\cc.jpg
は "" で囲わないとダメだと思うのですが。

"" で囲っても Option Strict On では依然としてダメ(Image を Bitmap
にキャストできない)です。

何か環境が違うのでしょうか?

引用返信 編集キー/
■78261 / inTopicNo.6)  Re[3]: 画像縮小
□投稿者/ WebSurfer (757回)-(2015/12/30(Wed) 20:52:43)
No78253 (ぎみっく さん) に返信

以下のようなコードで縮小できるのではないかと思います。お試しください。

Dim img As Image = Image.FromFile("img.jpg")
Dim originalH As Integer = img.Height
Dim originalW As Integer = img.Width

Dim targetH, targetW As Integer
Dim maxSize As Integer = 300

If originalH <= maxSize And originalW <= maxSize Then
    Return
ElseIf originalW < originalH Then
    targetH = maxSize
    Dim w As Double = Convert.ToDouble(originalW) * Convert.ToDouble(targetH) / Convert.ToDouble(originalH)
    targetW = Convert.ToInt32(w)
Else
    targetW = maxSize
    Dim h As Double = Convert.ToDouble(originalH) * Convert.ToDouble(targetW) / Convert.ToDouble(originalW)
    targetH = Convert.ToInt32(h)
End If

Dim saveimage As New Bitmap(img, targetW, targetH)
saveimage.Save("img-2.jpg")

引用返信 編集キー/
■78264 / inTopicNo.7)  Re[4]: 画像縮小
□投稿者/ ぎみっく (4回)-(2016/01/01(Fri) 14:17:13)
No78261 (WebSurfer さん) に返信
ありがとうございました
参考にさせてもらい
私なりに修正してみました
画像はできたのですが問題があるようです


Dim img As Bitmap = Image.FromFile("c:\aaa\bbb.jpg")
Dim tate As Integer = img.Height
Dim yoko As Integer = img.Width

'比率

If tate < yoko Then
hiritu = 300 / yoko
Else
hiritu = 300 / tate
End If

outtate = tate * hiritu
outyoko = yoko * hiritu

Dim saveimage As New Bitmap(img, outyoko, outtate)

strImageFileName = imagedir1 & "s" & i & "-" & IO.Path.GetFileName("c:\aaa\bbb.jpg")
saveimage.Save(strImageFileName)

上記でがぞうはでき、フォトビュアーやサムネイルは表示されましたが
ブラウザーで表示すると表示されません
一度、ペイントで開いてJPEGで上書き保存したら見られるん簿ですが・・・
何か抜けてますでしょうか?


引用返信 編集キー/
■78265 / inTopicNo.8)  Re[5]: 画像縮小
□投稿者/ Azulean (565回)-(2016/01/01(Fri) 15:03:27)
2016/01/01(Fri) 15:07:59 編集(投稿者)

No78264 (ぎみっく さん) に返信
> 上記でがぞうはでき、フォトビュアーやサムネイルは表示されましたが
> ブラウザーで表示すると表示されません
> 一度、ペイントで開いてJPEGで上書き保存したら見られるん簿ですが・・・
> 何か抜けてますでしょうか?

jpg という拡張子の png 画像を保存しているからでしょう。
なぜそうなるかについては、一度、自分が使っているメソッドについて調べることをおすすめします。

https://msdn.microsoft.com/ja-jp/library/ktx83wah
https://msdn.microsoft.com/ja-jp/library/system.drawing.bitmap.save



本筋ではありませんが、IO.Path.GetFileName("c:\aaa\bbb.jpg") は単に "bbb.jpg" と書くのと変わりません。
Web 投稿する際に変な形になってしまったのかもしれませんが、念のため。
引用返信 編集キー/
■78266 / inTopicNo.9)  Re[5]: 画像縮小
□投稿者/ WebSurfer (758回)-(2016/01/01(Fri) 16:37:20)
No78264 (ぎみっく さん) に返信

先にお願いした、

> ついでにもう一つ言わせていただけると、上記 URL のスレッドは回答が出て
> いますが放置状態になっています。きちんと最後までフォローしていただけま
> せんか?

は無視ですか?
引用返信 編集キー/
■78268 / inTopicNo.10)  Re[6]: 画像縮小
□投稿者/ ??????? (2回)-(2016/01/01(Fri) 17:56:29)
No78266 (WebSurfer さん) に返信
すいません
回答が遅れました
引用返信 編集キー/
■78270 / inTopicNo.11)  Re[7]: 画像縮小
□投稿者/ WebSurfer (760回)-(2016/01/01(Fri) 18:15:56)
No78268 (??????? さん) に返信
> ■No78266 (WebSurfer さん) に返信
> すいません
> 回答が遅れました

「???????」さん = 「ぎみっく」さん?

であれば、上にあれだけハンドル名のことでお願いしているのですから
お願いを聞いていただいてきちんとできませんか?
引用返信 編集キー/
■78271 / inTopicNo.12)  Re[6]: 画像縮小
□投稿者/ ??????? (3回)-(2016/01/01(Fri) 18:30:33)
No78265 (Azulean さん) に返信
参考のサイトからメソッドを調べてみたのですが
皆目、けんとうがつきません
もしやと思い、元画像がpngだったのかとおもい
デジカメのデーターやペイントで保存したデータで
試してもダメでした
結局は何らかの拍子にpngファイルを
jpgの拡張子で保存されているという
話されているようです
ペイントで保存する際
透明部分がどうのと聞いてきます

まだメソッドについての理解ができず
記載したソースだけでは改善出来そうにないでしょうか?


引用返信 編集キー/
■78273 / inTopicNo.13)  Re[8]: 画像縮小
□投稿者/ ぎみっく (6回)-(2016/01/02(Sat) 02:36:38)
いくつか試してみたところ

saveimage.Save(FileName, Imaging.ImageFormat.Jpeg)

のように背後にパラメータを」いれたらうまくいきました
ありがとうございました
解決済み
引用返信 編集キー/
■78274 / inTopicNo.14)  Re[8]: 画像縮小
□投稿者/ ぎみっく (7回)-(2016/01/02(Sat) 02:38:06)
No78270 (WebSurfer さん) に返信
>
> であれば、上にあれだけハンドル名のことでお願いしているのですから
> お願いを聞いていただいてきちんとできませんか?

すいません
今後、気を付けて書き込みします
引用返信 編集キー/
■78275 / inTopicNo.15)  Re[9]: 画像縮小
□投稿者/ ぎみっく (8回)-(2016/01/02(Sat) 02:38:34)
No78274 (ぎみっく さん) に返信
> ■No78270 (WebSurfer さん) に返信
>>
>>であれば、上にあれだけハンドル名のことでお願いしているのですから
>>お願いを聞いていただいてきちんとできませんか?
>
> すいません
> 今後、気を付けて書き込みします
解決済み
引用返信 編集キー/
■78276 / inTopicNo.16)  Re[7]: 画像縮小
□投稿者/ Azulean (566回)-(2016/01/02(Sat) 09:50:17)
解決済みのようですので、コメントだけ。

No78271 (ぎみっく さん) に返信
> まだメソッドについての理解ができず
> 記載したソースだけでは改善出来そうにないでしょうか?

私は、あなた自身で「改善する」べきことだと考えています。
そして、他の人に「改善してもらう」ことを続けると、そのプログラムは、他の人との共作に近づくことになります。

ゆえに断片とはいえ、ソースコードの提示は避け、調べ方、考え方に結びつく何かを残していただきたく、ドキュメントの場所を提示させていただいた次第です。
試行錯誤で答えにたどり着いたのかもしれませんが、ドキュメントは何を言っているのか、今回の結果から考えてみてもらえると、後の応用につながると思っています。

今回の例で言えば、ファイルパスだけを指定する Save メソッドは「グラフィック イメージを保存するメソッドは、ポータブル ネットワーク グラフィックス (PNG) ファイルとして保存します。」ということなので、”別の手段を探さなければならない”ということ、そして”Save メソッドには種類(オーバーロード)がある”ということを知ることができれば十分かと思っています。


// ハンドルが化けるのは Cookie に英数以外で保存している場合だと思う。
// 気をつけるとしたら毎回名前の欄を見なければならないのだと思われる。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -