HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2009
0208
Art画像をきれいにまわす方法19未解決


Art

リンク

2009/2/8(Sun) 20:01:20|NO.23290

画像をそのままのサイズで90度や180度まわしたいのですが、
grotateを使ってもサイズが拡大されたり、うまく90度回らなくてうまくいきません。
画像をきれいにまわす方法を教えてください。



この記事に返信する


ANTARES

リンク

2009/2/9(Mon) 07:43:24|NO.23293

 ここに何か書かないと投稿できないらしい

#module #defcfunc radian double p1 return p1*3.141592653589793/180 #global file="gazou\\0lea8-c.bmp" ;幅も高さも画面の横幅の4分の1以下の画像 buffer 2 picload file wid=ginfo_winx heit=ginfo_winy max=wid if heit>max: max=heit half=max/2 margin=0 screen 0,max*4+margin*3,max gcopy 2,0,0,wid,heit gmode 0,wid,heit pos max+margin+half,half grotate 2,0,0,radian(90) pos max*2+margin*2+half,half grotate 2,0,0,radian(180) pos max*3+margin*3+half,half grotate 2,0,0,radian(270) stop



ANTARES

リンク

2009/2/9(Mon) 07:44:59|NO.23294

フルカラー画像でないとダメかも



ANTARES

リンク

2009/2/9(Mon) 07:47:35|NO.23295

あ、サンプルに使った画像が256色だったんで、大丈夫みたいです



なたで

リンク

2009/2/9(Mon) 11:21:09|NO.23296

このHSP3掲示板の記事検索で「画像 90度 回転」
と入力して、ログを「過去ログから検索」に選択し、検索してみてください。



hoo-

リンク

2009/2/9(Mon) 12:45:29|NO.23297

>画像をきれいにまわす方法
↓このことで無ければ無視して下さい。

ホトフレーム(写真立て)を思い浮かべて下さい。

画像の回転とは中の写真だけを回転することです。
ホトフレームごと回転するのはキャンバスの回転といいます。
HSPのウィンドウはホトフレームに当たります。

これを踏まえればおのずと対処方法も分かると思います。



a

リンク

2009/2/9(Mon) 16:03:21|NO.23298

っ「gzoom」



ANTARES

リンク

2009/2/9(Mon) 23:36:07|NO.23305

 何か、最近、見当違いのレスが多いのでちょっとつっこんでみます。

>このHSP3掲示板の記事検索で「画像 90度 回転」
>と入力して、ログを「過去ログから検索」に選択し、検索してみてください。
 検索すれば解決したはずの問題だったと言いたいんだろうけど、
質問者には伝わらない可能性が高い。
 もし、そういう意図でないとすると、検索してみないと何が言いたいのかわからない。

>画像の回転とは中の写真だけを回転することです。
>ホトフレームごと回転するのはキャンバスの回転といいます。
>HSPのウィンドウはホトフレームに当たります。
 明らかにgrotateの使い方がわからないと言っているのに、
抽象的なやり方を説明してどうする。

>っ「gzoom」
 意味不明。意図不明。
 コミュニケーションのやり方を勉強してください。



通りすがり

リンク

2009/2/10(Tue) 03:09:20|NO.23308

いちいち突っかかりすぎじゃありませんかね?

>検索すれば解決したはずの問題だったと言いたいんだろうけど、
>質問者には伝わらない可能性が高い。
「分からないことがあるんだけど」
「これで検索したらどうよ?」
の会話で、検索したら解決するの?って聞き返す人間がいたら見てみたいですよ。

>明らかにgrotateの使い方がわからないと言っているのに、
>抽象的なやり方を説明してどうする。
投稿者本人が違ったら無視してくださいって書いてるのにわざわざ言うことでもないでしょう…
もしあなたには抽象的でも、分かる人には分かる可能性もあるんですよ?
あなたには的を得た発言でないと感じられたのでしょうから、望むとおり無視してはいかがです?

>コミュニケーションのやり方を勉強してください。
「〜する道具無い?」と聞かれて無言で道具を渡しても通じないことはないかと思うのですが。
確かに不親切ですけど。
ただgzoomだと180度は出来ますけど90度はできなかった気が…?

私としてはANTARESさんが、補足し忘れたからって1行レスを何回も付けるほうが見難いのですが…
前に書いた記事を削除して、投稿しなおしたらいかがです?



a

リンク

2009/2/10(Tue) 17:54:31|NO.23310

90度はgzoomでは確かに出来なかったので、
90度回転するプログラムのソースを置いておく
いや…てっきりgrotateの精度に不満があるのかと

//画像を90度回転してコピー buffer 2 dialog "bmp;*.gif;*.jpg", 16, "画像" picload refstr mref v2, 66 //コピー元のVRAM w = ginfo_winx //画像の幅 h = ginfo_winy //画像の高さ screen , h, w mref v0, 66 //コピー先のVRAM redraw 0 vw0 = (h * 3 + 3) & $fffffffc vw2 = (w * 3 + 3) & $fffffffc i = h * 3 + (w - 1) * vw0 j = h * vw2 repeat w repeat h i -= 3 j -= vw2 memcpy v0, v2, 3, i, j loop j += 3 + h * vw2 loop redraw 1



Sucret

リンク

2009/2/10(Tue) 18:02:18|NO.23312

画像の回転についてgrotateの説明をすればいいんですかね?
一応説明すると

grotate p1,p2,p3,p4,p5,p6
p1=0〜(0) : コピー元のウィンドウID
p2=0〜(0) : コピー元の左上X座標
p3=0〜(0) : コピー元の左上Y座標
p4=0〜(0.0) : 回転角度(単位はラジアン)
p5=0〜(?) : Xサイズ
p6=0〜(?) : Yサイズ

つまり
・p1,2,3はgcopyのp1,2,3と同じです。
・p4は回転角度を指定します。
 2πで360°になるので、90度の場合は3.141592/2すなわち1.570796です。
・p5,p6がコピー後のサイズになります。ここの数値を変えて拡大が可能です。
 そのままのサイズの場合は省略すればできます。



なたで

リンク

2009/2/11(Wed) 01:27:26|NO.23319

すみません。説明不足でした。次から気をつけます。

>画像をそのままのサイズで90度や180度まわしたいのですが、
>grotateを使ってもサイズが拡大されたり、うまく90度回らなくてうまくいきません。
>画像をきれいにまわす方法を教えてください。

「そのままのサイズ」「うまく90度回らない」「綺麗にまわしたい」
という意見から、画像を90度を正確に回したい、意図が見受けられたので回答しました。
grotateは、回転させることが出来ますが、90度,180度、270度は誤差が出るので難しいです。
そのため、aさんのように直接メモリ操作で回転する方法しかありません。
180度に関してはgzoomを使用することで可能です。
詳しくは「gzoom 回転」で「過去ログから検索」に選択し、検索してみてください。



ANTARES

リンク

2009/2/11(Wed) 06:02:49|NO.23323

 つまり、私の書いたスクリプトは、aさんとなたでさんの環境では
正しく動作しないという意味ですか?



ANTARES

リンク

2009/2/11(Wed) 07:24:57|NO.23326

 もしやと思ってなたでさんの書いた検索をやってみました。
でも、検索結果画面の使いにくさのせいで、なかなか何が問題に
なっているのか、わかりませんでした。
(検索結果のどの記事とどの記事が同じスレッドかすらわからない。
 過去ログは並べ方がNo順に見えて実はそうではないのか、それとも
 バグで抜けがあるのか、検索した記事のスレッドを探そうとしても
 見つけることができない。すべての記事にタイトルを表示してほしい、
 あるいは記事番号を指定してスレッド全体を表示する機能がほしい)

 1時間近く悪戦苦闘した結果、
・「画像 90度 回転」を過去ログから記事検索……No.4912
・「gzoom 回転」を過去ログから記事検索……No.7214
より、「厳密に正確な画像コピーが必要ならgrotate, gsquareは使えない」
という結論にたどり着きました。

 しかし、
>grotateは、回転させることが出来ますが、90度,180度、270度は
>誤差が出るので難しいです。
という結論は出てきません。



ANTARES

リンク

2009/2/11(Wed) 08:00:08|NO.23329

>「厳密に正確な画像コピーが必要ならgrotate, gsquareは使えない」
 「横幅が173ドットを超える場合」という条件がつくかもしれません。



?

リンク

2009/2/11(Wed) 11:56:15|NO.23332

もう少し柔軟になりましょうよ。



ANTARES

リンク

2009/2/12(Thu) 00:57:51|NO.23359

 aさんとなたでさんの勘違いという結論でよろしいか?



a

リンク

2009/2/12(Thu) 16:56:41|NO.23362

なたでさんの方はわかりませんがよろしいです



なたで

リンク

2009/2/12(Thu) 17:32:18|NO.23364

はい。私の勘違いでした。



ANTARES

リンク

2009/2/13(Fri) 00:09:03|NO.23372

 ありがとうございます。



ONION software Copyright 1997-2023(c) All rights reserved.