; ; 画分作文 ver 0,5 99,10.12 登録ファイル ; ; インターフェース部分の作成 ; ; 使用変数 px py sx sy tx ty x y r g b xps yps ; ; 使用画面 buffer 6 title.jpg 読み込み&一部分読み取り ; bgscr 7 タイトル画面 ; screen 5 一部分用画面 ; screen 4 分割操作画面 ; screen 3 分割線描画画面 ; buffer 2 背景画面 jpgsave ; screen 0 ボタン操作画面 ; 使用 picture title.jpg ; ; キャンセル時のちらつきをなくす。 ; reset ; complete sorting ; add jpgsave ; まだ未完成 分割しない時にエラーがでる ; JPG画質向上 ; 画像再選択 ディレクトリバグ 10.12 ; position 表示 10.12 ; #include "HSJPEG.as" #include "HSJ_Reg.as" imadir=curdir ; 現在のディレクトリ取得 gsel 0,-1 xps=0 : yps=0 ; pos 配列変数用のナンバー変数 rr=100 : gg=80 : bb=60 px=dispx-400/2:py=dispy-500/2 buffer 2,,,0 picload "title.jpg" sx=winx :sy=winy bgscr 7,400,500,0,px,py title " 画分作文" tx=400/sx+1 :ty=500/sy+1 redraw 2 y=0 repeat ty x=0 :repeat tx pos x,y gcopy 2,0,0,sx,sy x+=sx loop y+=sy loop redraw 1 : font "MS 明朝",50,1 pos 90,134 :color 150,150,150 mes "画分作文" pos 202,392 font "MS 明朝",25 mes "kurayan soft" r=220 : g=220 : b=250 repeat 50 pos 200,390 : color r,g,b mes "kurayan soft" font "MS 明朝",50,1 pos 86,130 mes "画分作文" font "MS 明朝",25,1 pos 35,60 mes "ホームページ作成支援ソフト" pos 200,390 font "MS 明朝",25 mes "kurayan soft" r-=3 : g-=3 : b-=3 : await 20 loop wait 30 objsize 80,25 pos 200,440 button "画像選択",*select pos 280,440 button "終了",*owari stop *select font "MS 明朝",16 pos 280,303 objsize 80,25 button "一部分",*itibubun pos 280,332 objsize 80,25 button "全画像",*zengazou pos 124,308 mes "画像の一部分を使う" pos 124,338 mes "画像をそのまま使う" stop *itibubun dialog "jpg;*.bmp",16,"元になる絵を選択してください" if stat=0:gsel 7,1 :stop buffer 6,,,0 gsel 7,-1 : gsel 6 picload refstr : wx=winx : wy=winy screen 5,wx,wy,0 title " 選択画面" *saisyo redraw 2 pos 0,0 gcopy 6,0,0,wx,wy redraw 1 title " 左クリックとドラッグで選択開始" *@ msx=mousex : msy=mousey getkey moushidari,1 if moushidari=1 :goto *erabu await 1 goto *@back *erabu title " 左クリック解除で決定 " px=msx : py=msy : mx=mousex : my=mousey if msx>=mx:mx=msx+2 if msy>=my:my=msy+2 kurikaesix=(mx-msx/2) kurikaesiy=(my-msy/2) pos 0,0 gcopy 6,0,0,wx,wy pos msx,msy pget msx,msy r1=rval : g1=gval : b1=bval if r1<128 :r1+=120 : else r1-100 if g1<128 :g1+=100 : else g1-80 if b1<128 :b1+=110 : else b1-90 color r1,g1,b1 repeat kurikaesix px+=1 line px,py : px+=1 : pos px,py loop repeat kurikaesiy py+=1 line px,py : py+=1 : pos px,py loop repeat kurikaesix px-=1 line px,py : px-=1 : pos px,py loop repeat kurikaesiy py-=1 line px,py : py-=1 : pos px,py loop redraw 1 : redraw 2 getkey hidari,1 if hidari=0:goto *bunkatu await 1 goto *erabu *bunkatu wait 5 dialog "現在の選択範囲でいいですか?",2, if stat=7:goto *saisyo gsel 5,-1 sizex=(mx-msx):sizey=(my-msy) *reset xps=0 : yps=0 screen 4,sizex,sizey,0,115,0 gsel 4,1 title " 左クリックで分割線決定" gcopy 6,msx,msy,sizex,sizey *fromall buffer 3,sizex,sizey,0 pos 0,0 gcopy 6,msx,msy,sizex,sizey dim tatepos,100 dim yokopos,100 gsel 0,1 screen 0,110,156,0,0,0 title "操作" pos 0,0 objsize 110,26 button "縦線を引く",tatesen button "横線を引く",yokosen button "線の色",linesel button "リセット",*reset button "画像再選択",*reselect button "分割保存",*cutsave stop *reselect gsel 0,-1 ;リセットの時の表示 gsel 4,-1 ; 同上 gsel 7,1 stop goto *select ;;;;;;;;;; サブルーチン ;;;;;;;;;;;;;;; *tatesen gsel 4,1 title " 左クリックで分割線決定 x position = "+xx pos 0,0 color rr,gg,bb redraw 2 gcopy 3,0,0,sizex,sizey xx=mousex pos xx,0 line xx,sizey ginfo 1 if prmx=4{ getkey x_sen,1 if x_sen=1{ yokopos.xps=xx:xps++ gsel 3 pos 0,0 gcopy 4,0,0,sizex,sizey stop } } await 1 redraw 1 goto *tatesen *yokosen gsel 4,1 title " 左クリックで分割線決定 y position = "+yy pos 0,0 color rr,gg,bb redraw 2 gcopy 3,0,0,sizex,sizey yy=mousey pos 0,yy line sizex,yy ginfo 1 if prmx=4{ getkey y_sen,1 if y_sen=1{ tatepos.yps=yy:yps++ gsel 3 pos 0,0 gcopy 4,0,0,sizex,sizey stop } } await 1 redraw 1 goto *yokosen stop *owari end *zengazou dialog "jpg;*.bmp",16,"元になる絵を選択してください" if stat=0:gsel 7,1 :stop gsel 7,-1 buffer 6,,,0 picload refstr : wx=winx : wy=winy screen 4,wx,wy,0,115,0 title " 左クリックで分割線決定" pos 0 gcopy 6,0,0,wx,wy msx=0:msy=0:sizex=wx:sizey=wy goto *fromall stop *linesel dialog "分割線の色",32 rr=rval : gg=gval : bb=bval stop ; //////////// ここからセーブプログラム /////////// ; ; まずJPG 画像品質設定 *cutsave screen 0,190,105,0 redraw 2 pos 0,0 gcopy 2,0,0,sx,sy pos 128,0 gcopy 2,0,0,sx,sy pos 256,0 gcopy 2,0,0,sx,sy pos 0,128 gcopy 2,0,0,sx,sy redraw 1 title " JPEG 品質設定" font "MS 明朝",17 pos 35,19 mes "JPEG 品質設定" inp=75 pos 24,54 inp0="" input inp,50,26 pos 74,53 objsize 14,14 button "+",*plus pos 74,66 objsize 14,14 button "-",*minus objsize 50,26 pos 104,53 button "OK",*jsave stop *plus inp+=5 if inp>95:inp=100 objprm 0,inp stop *minus inp-=5 if inp<5:inp=5 objprm 0,inp stop ; ;///////// セーブする前に配列のソート ///////////////// *jsave ;:::::: ソート :::::::::::::::::::::99.10.6 gsel 4,-1 gsel 0,-1 bgscr 7,240,128,0,dispx-240/2,dispy-128/2 redraw 2 pos 0,0 gcopy 2,0,0,sx,sy pos 128,0 gcopy 2,0,0,sx,sy redraw 1 text 60 pos 15,20 font "MS 明朝",17 mes "* 画像分割JPEG変換中" gsel 7,1 int tempx repeat xps repeat xps cnter=cnt : cnters=cnt+1 if yokopos.cnter>yokopos.cnters{ tempx=yokopos.cnter yokopos.cnter=yokopos.cnters yokopos.cnters=tempx } loop loop cnters++ yokopos.cnters=sizex int tempy repeat yps repeat yps cnter=cnt : cnters=cnt+1 if tatepos.cnter>tatepos.cnters{ tempy=tatepos.cnter tatepos.cnter=tatepos.cnters tatepos.cnters=tempy } loop loop cnters++ tatepos.cnters=sizey if xps=0:yokopos.0=0:yokopos.1=sizex if yps=0:tatepos.0=0:tatepos.1=sizey ;/////////////// ここから JPEG セーブ ///////////////////// chdir imadir skiperr 1 mkdir "cutpics" skiperr 0 bcopy "bg.jpg","cutpics\\bg.jpg" chdir "cutpics" bango=1 gsel 6 repeat yps+1 cty=cnt+1 cutposy=msy+tatepos.cnt hitey=tatepos.cty-tatepos.cnt repeat xps+1 ctx=cnt+1 widex=yokopos.ctx-yokopos.cnt pos msx+yokopos.cnt,cutposy JpegParam inp,1,0,0 JpegParam2 1,1,0,0 jpegsave "cut"+bango+".jpg",widex,hitey bango++ loop loop ;////////// ここから 作文の部分 ////////////////////// gsel 7,1 pos 15,45 : mes "* html 文書作成中": wait 100 tate=yps+1 : yoko=xps+1 alloc html,32000 r="\n" d=" \n
\n" kosu=tate*yoko str kosu html+="
\n

表示されている画像は、"+kosu html+="個の画像から構成されています。

\n
\n
\n" html+="\n" p=0 repeat tate html+=r : j=1 repeat yoko img=p*yoko+j html=html+d+img+".jpg\">\n" j+ loop html+="\n" : p+ loop html+="
\n


\n" html+="編集は、お手持ちのHTMLエディタをご利用ください" html+="
\n
\n" strlen len,html bsave "cutpic.html",html,len pos 15,70 : mes "* 作業完了" : wait 100 pos 15,95 : mes "* ブラウザを起動します。" exec "cutpic.html",16 wait 150 end