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


HSPTV!掲示板


未解決 解決 停止 削除要請

2006
0828
Needlepgetについて7解決


Needle

リンク

2006/8/28(Mon) 14:22:40|NO.2167

ver3でpgetした時、ginfo_rとかに正確な数値が入らないのはなぜでしょうか?
例えば輝度 128 の場合、 132 が代入されてます。ver2ではなかったのにねぇ。
いちいち誤差を調べるの めんどくさいっつの。



この記事に返信する


GAM-22

リンク

2006/8/28(Mon) 15:56:52|NO.2169

私の環境(3.0aと3.1b5)では以下のスクリプトで正常に取得できます。

color 128,0,0 : boxf pget 100,0 txt = ""+ginfo(16) +","+ ginfo(17)+","+ginfo(18) input txt



Needle

リンク

2006/8/28(Mon) 16:42:56|NO.2172

まぢですか。俺も3.0a使ってんだけど・・・
ところで ginfo(16) なんて書き方があるとは知りませんでしたなあ。
どこでお知りになられたのですか?



KIMU

リンク

2006/8/28(Mon) 18:37:12|NO.2174

>まぢですか。俺も3.0a使ってんだけど・・・
PC環境の問題、デスクトップが24ビット色以上のフルカラーなら問題が起こらない
(と、思った)

元々GAM-22さんのやり方はでは、問題が出る環境か分からない
24ビット色以上の 画像データを読み込んだ時に色が修正される

前に出た似たような話題
http://hsp.tv/play/pforum.php?mode=all&num=952



Needle

リンク

2006/8/29(Tue) 13:35:05|NO.2175

PCの環境とかは、たぶん問題ではないと思うよ。
同じパソコンに前、2.61入れてて、まだ残ってるけど、
そっちでやると全く問題無し。しかし3の方で全く同じように
しても、やはり微妙に誤差のある数値になります。
  ちなみに
 64→68 128→132 192→198
  といった具合に輝度がずれます、0と255はさすがにそのままのようですが。



KIMU

リンク

2006/8/29(Tue) 17:39:53|NO.2178

>PCの環境とかは、たぶん問題ではないと思うよ。
24ビット色以上の設定にしてやってみれば分かる

>64→68 128→132 192→198
リンク先見てないね・・・
24ビットを16ビットに変更されてしまうから起きる問題
一応モジュールで色が修正されないのが付いている

まぁ、減色されないのが標準命令だと扱い易いとは、思うけど・・・
これは、雑談より要望としてスレを立てた方がいいのかも



KIMU

リンク

2006/8/30(Wed) 11:14:33|NO.2183

hspってパレットモード以外なら24ビットのVRAMになるのに
デスクトップが16ビットだからって24ビットのBMP読み込んで
減色されるのは変かもねぇ・・・(減色が必要な場合は自前より全然高速に出来るけど)

普通の24BitBMPならデータ部分を、そのままVRAMに、流しこめるから簡単なんだけど・・・

//true colorBMPをそのまま読み込む(24bitベタBMP限定) #module "bmpt" #const TEMPID 100 #const BFTYPE 0 #const BFOFFBITS 10 #const BIWIDTH 14+4 #const BIHEIGHT 14+8 #const BIBICOUNT 14+14 #const BICOPMRESSION 14+16 #const TYPEBMP ('m'<<8)+('b') //%1ファイルネーム %2読込バッファID(省略時100、-1の時は現在のバッファ) //%3現在のウィンドウにコピーするか(0=しない、1=する) %4,%5コピーする場所 #define global bmptload(%1,%2=TEMPID@bmpt,%3=0,%4=0,%5=0) _bmptload %1,%2,%3,%4,%5 #deffunc _bmptload str fnam,int gselno,int copy,int posx,int posy exist fnam fsiz=strsize if fsiz<=0{return -100};読み込めない(エラーNO -100) dim fhed,54 bload fnam,fhed,54,0 bmptype=wpeek(fhed,0)|$2020 bmpcol=wpeek(fhed,BIBICOUNT) if (TYPEBMP=bmptype) { if bmpcol!24{return -bmpcol};24ビット色以外(エラーNO -色モード) bmpfos=lpeek(fhed,BFOFFBITS) bmpsaizw=lpeek(fhed,BIWIDTH) bmpsaizh=lpeek(fhed,BIHEIGHT) bmpc=wpeek(fhed,BICOPMRESSION) if (fsiz>=(bmpsaizw*bmpsaizh*3)) and (bmpc=0){ dim vram,1 actid=ginfo(3) if gselno>=0{buffer gselno,bmpsaizw,bmpsaizh,0}else{buffer actid,bmpsaizw,bmpsaizh,0} mref vram,66 bload fnam,vram,-1,bmpfos bmpid=ginfo(3) gsel actid,1 if copy=1{pos posx,posy:gcopy bmpid,0,0,bmpsaizw,bmpsaizh} }else{return -300};画像がファイルサイズサイズより大きすぎる、又は圧縮されてる(エラーNO -300) }else{return -200};bmpファイルじゃない(エラーNO -200) return #global

バッファID10に読み込んで、現在のウィンドウにコピー

bmptload "filename",10,1,100,100

自己レス
>一応モジュールで色が修正されないのが付いている
3.1β5でmod_img.asを使ってみたら、エラーもなしにエディターが終了した・・・
(他に編集中の物があったのに・・・)


#スクリプトの間違いがあったのでレスを削除して修正しました。(すみません)
#if gselno>=0{buffer gselno,bmpsaizw,bmpsaizh}e,0lse{buffer actid,bmpsaizw,bmpsaizh,0}
#を
#if gselno>=0{buffer gselno,bmpsaizw,bmpsaizh,0}else{buffer actid,bmpsaizw,bmpsaizh,0}
#(ここにコピペしてからいじると間違えやすいな・・・)



Needle

リンク

2006/8/30(Wed) 17:27:06|NO.2193

ほー、そうなんですか、いや、勉強になりました。
ちなみに今日、部活引退し(中3です)、しばらく出られなくなります。
(家のPCはインターネットにつながってないんだよー)
それでは、ありがとうございました。



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