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


HSPTV!掲示板


未解決 解決 停止 削除要請

2012
1227
オレンジJPEG画像を縮小したい8解決


オレンジ

リンク

2012/12/27(Thu) 08:37:06|NO.51465

いつもお世話になっております

フォルダに入っているJPEG画像を縮小して、
JPEG画像で保存したいのですが、
どうやったらできるのでしょうか?

800x800 => 130x130pxに縮小したいのです。

どうぞよろしくお願いいたします。



この記事に返信する


@key

リンク

2012/12/27(Thu) 09:19:51|NO.51467

bufferで隠れウィンドウを作りjpgを描画、gzoomで縮小して縮小した範囲を画像形式で保存



あり

リンク

2012/12/27(Thu) 10:35:59|NO.51470

HSPCVを使えば可能です。

#include "hspcv.as" dialog "" , 16, "" if stat = 0 : end picload refstr, 0 imgx = ginfo_sx ; 画像Xサイズ imgy = ginfo_sy ; 画像Yサイズ cvbuffer 0, imgx, imgy cvputimg 0 cvresize 130, 130, 0, CV_INTER_NN screen 1, 130, 130 cvgetimg 0, 1 dialog "jpg" , 17, "" if stat = 0 : end cvsave refstr, 0, 80



オレンジ

リンク

2012/12/28(Fri) 05:09:02|NO.51493

@key様、あり様

どうもありがとうございます

思ったように縮小することができました。

そこで、このプログラムを組み込みたいのですが、
画像を画面に表示せずに、ひっそりと処理させるにはどうしたら良いでしょうか?

また、画質が劣化するのですが、もう少し劣化しないようにするにはどうしたら良いでしょうか?

すみませんが、どうぞよろしくお願いいたします。

#include "hspcv.as"

picload "A.jpg", 0

imgx = ginfo_sx ; 画像Xサイズ
imgy = ginfo_sy ; 画像Yサイズ
cvbuffer 0, imgx, imgy
cvputimg 0
cvresize 130, 130, 0, CV_INTER_NN

//screen 1, 130, 130
// cvgetimg 0, 1

cvsave "A_s.jpg", 0, 80



匿名希望

リンク

2012/12/28(Fri) 11:09:33|NO.51503

>画像を画面に表示せずに、ひっそりと処理させるにはどうしたら良いでしょうか?
@keyさんのレスをよく読んでみてください
即解決に至るヒントがあります

>また、画質が劣化するのですが、もう少し劣化しないようにするにはどうしたら良いでしょうか?
ヘルプを読んで
・cvresizeの第4引数
・cvsaveのの第3引数(p2)
あたりを変更すれば解決できると思われます



オレンジ

リンク

2012/12/28(Fri) 14:09:33|NO.51510

匿名希望様

ヒントをどうもありがとうございます

画像の方は綺麗になりました。

しかし、まだ画面が表示されたままになってしまいます。

具体的には、D&D用の画面を開いていて、そこにフォルダを放り込んで
画像を縮小させているのですが、

その画面が縮小画像に変わってしまい、次のD&Dができなくなっています。

まだbufferとscreenがよく理解できていないようです。
下記のような書き方では次にはD&Dができなくなってしまいました。

どうすれば、影響を受けなくて済みますでしょうか?

すいませんが、アドバイスをお願いします。

//-----▼ サムネイル画像作成

buffer 0, 800, 800
// screen 0, 130, 130
picload FOLDER+"_00.JPG", 0
imgx = ginfo_sx ; 画像Xサイズ
imgy = ginfo_sy ; 画像Yサイズ
cvbuffer 0, imgx, imgy
cvputimg 0
cvresize 130, 130, 0, CV_INTER_AREA
screen 0, 130, 130
cvgetimg 0, 1
cvsave FOLDER+"_00s.jpeg", 0, 80//区別するために拡張子を変更
buffer 2, 800, 800
screen 1, 500, 500
//-----▲



@key

リンク

2012/12/28(Fri) 14:47:58|NO.51511

bufferはscreenの非表示版
screenはgselで非表示にもできるけどbufferは表示することはできず、メモリ上のみで動く
スクリーンID0はメインなのでいじらず、適当な別IDにbufferを作りましょう
作業するスクリーンを決める命令はgselです
詳しくはヘルプ参照



オレンジ

リンク

2012/12/28(Fri) 15:49:26|NO.51512

@key様

いつもお世話になっております

アドバイスどうもありがとうございます。

screenを消してbuffer1にしたら、思うように動きました。

ヘルプを見て勉強します。

使いたいと思っていたTOOLが自分で作れて
だんだんと出来上がっていくのが、楽しくて嬉しいです。
毎日勉強ですね。

今後ともどうぞよろしくお願いいたします。



オレンジ

リンク

2012/12/28(Fri) 15:59:02|NO.51514

解決済にするのを忘れていました。
どうもありがとうございました。



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