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


HSPTV!掲示板


未解決 解決 停止 削除要請

2020
0921
ふにくらa2dでJPG保存する際の品質指定3解決


ふにくら

リンク

2020/9/21(Mon) 21:40:16|NO.91417

こちらのサイト
http://menyukko.ifdef.jp/cauldron/hmimage.html
を見てGDI+でのjpg保存時に品質を指定できると知ったものの、artlet2Dでは品質を指定できないようでした。

出来るのならartlet2Dで品質を指定し保存したいのですが、どなたかお知恵をお貸し頂けないでしょうか。

おそらくalSaveFile命令内で呼ばれているGdipSaveImageToFileの第4引数に、何らかの構造体のポインタを
渡せばいいのだろう、というところまでが限界でした……。
どうぞよろしくお願い致します。



この記事に返信する


TOMATO

リンク

2020/9/22(Tue) 00:01:24|NO.91419


#include "a2d.hsp" #module a2d_mod_jpg #define global alSaveFileJpeg(%1, %2=100, %3=0, %4=0,%5=imgWidth@a2d, %6=imgHeight@a2d) alSaveFileJpeg_ %1, %2, %3, %4, %5, %6 #deffunc alSaveFileJpeg_ str p1, int quality, int px, int py, int pw, int ph ; filename, quality, rect if ( CLSID == 0) { CLSID = 0x557CF401, 0x11D31A04, 0x0000739A, 0x2EF31EF8 // JPEG dim EncoderParameter, 8 EncoderParameter(0) = 1 EncoderParameter(1) = 0x1D5BE4B5, 0x452DFA4A, 0xB35DDD9C, 0xEBE70551 // CLSID_QUALITY EncoderParameter(5) = 1 EncoderParameter(6) = 4 EncoderParameter(7) = varptr(q) } q = quality if( q < 1 ) { q = 80 } GdipCreateBitmapFromScan0@a2d pw, ph, 0, PixelFormat32bppARGB@a2d, 0, varptr(tmpImage) GdipGetImageGraphicsContext@a2d tmpImage, varptr(tmpGraphics) GdipDrawImageI@a2d tmpGraphics, imgImage@a2d, -px, -py GdipSaveImageToFile@a2d tmpImage, p1, varptr(CLSID), varptr(EncoderParameter) GdipDeleteGraphics@a2d tmpGraphics tmpGraphics = 0 GdipDisposeImage@a2d tmpImage tmpImage = 0 return 0 #global // --- 以下サンプル strInput = dir_exe + "\\sample\\hspcv\\bgsamp.jpg" strOutput = dir_desktop + "\\hsp3test.jpg" alCreateImageByFile 0, strInput exec strInput, 16 alSaveFileJpeg strOutput, 1 exec strOutput, 16



TOMATO

リンク

2020/9/22(Tue) 00:06:27|NO.91420

Artlet2D を改造しています。
(a2d.hsp ファイル自体は書き換え不要です)

------------------------------------------------------------------------
-----
画像ファイルをJPEG保存
-----
alSaveFileJpeg "file", quality, px, py, w, h

"file" : 保存ファイル名
quality : 品質(1-100)
px, py : 保存対象矩形 左上 (0, 0)
w, h : 保存対象矩形 幅・高さ (currentWidth, currentHeight)
-----
解説
-----
現在の仮想イメージをJPEGファイルとして保存します。
引数 quality を指定すると、JPEGの品質を指定できます。(1〜100)
引数 px, py, w, h を指定すると、仮想イメージの一部を保存できます。これらの引数を省略した場合は、仮想イメージ全体が対象となります。
-----



ふにくら

リンク

2020/9/22(Tue) 00:25:25|NO.91421

>TOMATO様

おお、こんなにも早く回答が頂けるとは・・・。
大変助かりました。ありがとうございます!



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