HSP用の画像処理モジュールipmpackで手書き風画像処理

ライブラリ制作
スポンサーリンク

前からやってみたかった手書き風の画像処理をしてみた。

#include "ipmpack.hsp"
dialog "bmp;*.gif;*.jpg",16
exist refstr
if (strsize==-1){end}else{picload refstr:title getpath(refstr,8)}
mref vram,66
size=ginfo(26),ginfo(27)
ipm_m_vraminit buf1,size(0),size(1)
ipm_m_vramcopy buf1,vram,size(0),size(1)
n=5
ipm_f_circle f_fil,n
ipm_m_double2int f_fil,i_fil,n*n
ipm_codemedianfilter varptr(vram),varptr(buf1),0,0,size(0),size(1),size(0),size(1),n,n,varptr(i_fil),varptr(i_fil),varptr(i_fil),n*n-n,0
ipm_m_vramcopy vram,buf1,size(0),size(1)
ipm_codekuwaharafilter varptr(vram),varptr(buf1),0,0,size(0),size(1),size(0),size(1),3,3,0
ipm_m_vraminit buf2,size(0),size(1)
n=3
ipm_f_gauss f_fil,n,2
f_fil(n*n/2+n/2-1)=-1.0+f_fil(n*n/2+n/2-1)
ipm_m_double2int f_fil,i_fil,n*n
ipm_codefilter varptr(buf1),varptr(buf2),0,0,size(0),size(1),size(0),size(1),n,n,varptr(i_fil),varptr(i_fil),varptr(i_fil),0,0,0,0
sdim table,257:repeat 256:if (cnt<=5){poke table,cnt,0}else{poke table,cnt,limit(cnt*3,50,255)}:loop
ipm_codegrayscale varptr(buf2),varptr(buf2),0,0,size(0),size(1),size(0),size(1),varptr(table),varptr(table),varptr(table)
ipm_codesubtraction varptr(buf1),varptr(vram),0,0,size(0),size(1),size(0),size(1),varptr(buf2)
n=2
ipm_f_average f_fil,n*n
ipm_codemedianfilter varptr(vram),varptr(buf1),0,0,size(0),size(1),size(0),size(1),n,n,varptr(i_fil),varptr(i_fil),varptr(i_fil),1,0
ipm_m_vramcopy vram,buf1,size(0),size(1)
n=2
ipm_f_circle f_fil,n*n
ipm_codemedianfilter varptr(vram),varptr(buf1),0,0,size(0),size(1),size(0),size(1),n,n,varptr(i_fil),varptr(i_fil),varptr(i_fil),n*n-n,0
ipm_m_vramcopy vram,buf1,size(0),size(1)

それにしてもこのblog(MSN Spaces blog)、pngとかでアップできないから困る!
JPEGにしても勝手に圧縮率変えて再圧縮されて汚くなるし。
MSN Spaces余分なことするんじゃねえええええ。
50kb未満のサイズならそのまま通して下さい。

そもそも今時JPEGって、JPEG2000が標準になってくれればいいなあ。

コメント

タイトルとURLをコピーしました