Page 262 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼外部変形で画像同梱 kojima 17/1/9(月) 17:00 ┣Re:外部変形で画像同梱 マチャプチャレ 17/1/10(火) 6:41 ┃ ┗Re:外部変形で画像同梱 マチャプチャレ 17/1/10(火) 13:51 ┃ ┗Re:外部変形で画像同梱 マチャプチャレ 17/1/14(土) 10:51 ┗Re:外部変形は難しい。 入門者 17/1/11(水) 2:11 ┗Re:外部変形は難しい。 kojima 17/1/12(木) 14:50 ┗Re:解決しました。。 入門者 17/1/14(土) 1:27 ─────────────────────────────────────── ■題名 : 外部変形で画像同梱 ■名前 : kojima ■日付 : 17/1/9(月) 17:00 -------------------------------------------------------------------------
外部変形で画像同梱できます。 BMP画像に変換しないで同梱しますので、標準機能に比べてファイルサイズが大幅に小さいです。 第一段階 対象の図面で以下のバッチファイルを実行します。 @REM 同梱画像の作成 @echo off REM #jww REM #cd REM #hf REM #h4 REM #e copy jwc_temp.txt temp.txt > nul ruby -x %~f0 temp.txt echo h#>jwc_temp.txt goto end #!ruby -Ks require 'zlib' path=Dir.pwd;path.gsub!("/","\\") #gzファイルの作成 def make_gz(array,g_file) g_file2=g_file.sub("C:","C_") g_file2.gsub!("\\","_") gz_file=g_file2+".gz" File.open(gz_file,"wb"){|f| Zlib::GzipWriter.wrap(f){|gz| if g_file =~ /\:/ open(g_file,"rb"){|fr|gz.write fr.read} else open("#{$dir}\\#{g_file}","rb"){|fr|gz.write fr.read} end } } array<<gz_file end array=[] while ARGF.gets xy=$_.split if xy[0]=~/^file=/ file_name=$'.chomp $dir,fname=File.split(file_name) end if xy[0]=~/^ch/ moji=$'.chomp if $_ =~ /\"/ if moji =~ /^\^@BM/ gf_name=$' unless gf_name=~/^\%temp\%/ g_name=$` if gf_name =~ /\,/ array<<g_name end end end end garray=[] array.uniq.each{|item| make_gz(garray,item) } data="" data<<[garray.size].pack("L") garray.each{|item| data<<[item.size].pack("C") data<<item data<<[File.size(item)].pack("L") open(item,"rb"){|f|data<<f.read} } jww_data="" open(file_name,"rb"){|f|jww_data=f.read} p_data=jww_data[-4,4].unpack("L")[0] if p_data==0 data2=jww_data[0..-5]<<data open("temp.jww","wb"){|f|f.write data2} garray.each{|item|File.delete(item)} system("start c:\\jww\\jw_win #{path}\\temp.jww") else STDERR.puts "既存の同梱画像があります","画像分離してから再実行してください" STDIN.gets end __END__ :end ↑以上のバッチファイルを実行すると画像同梱されたtemp.jwwが 作成されて開きます。(バッチファイルのあるフォルダに作成) 参照画像は、まだそのままです。 (相対パスの画像の場合は、一旦、文字情報になります) 第二段階 temp.jww上で以下のバッチファイルを実行します。 参照画像が同梱画像に置換されます。 @REM 参照画像と同梱画像の置換 @echo off REM #jww REM #cd REM #zz REM #zc REM #hf REM #h3 REM #hc参照画像を選択してください REM #e copy jwc_temp.txt temp.txt > nul ruby -x %~f0 temp.txt > jwc_temp.txt pause goto end #!ruby -Ks require 'zlib' puts "hd" n=0 while ARGF.gets xy=$_.split if xy[0]=~/^hq/ elsif xy[0]=~/^ch/ if $_ =~ /\"/ pr_moji=$` moji=$'.chomp end if moji =~ /^\^@BM/ #gf_name=$' unless moji =~ /^\%temp\%/ n += 1 moji.sub!(/^\^@BM/,"\^@BM\%temp\%") if moji=~/(\..{3})\,/ gf_name=$`+$1 zahyo_moji=$' end if zahyo_moji array=zahyo_moji.split(",") end gf_name.sub!("C:","C_") gf_name2=gf_name.gsub("\\","_") if array.size==2 zahyo_moji=array.join(",")+",0,0,1,0" else zahyo_moji=array.join(",") end printf("%s \"%s,%s\n",pr_moji,gf_name2,zahyo_moji) else print $_ end else print $_ end else print $_ end end if n==0 STDERR.puts "参照画像はありません" puts("h#参照画像はありません") end __END__ :end |
▼kojimaさん: わーい!素敵な外部変形をありがとうございます。 早速使ってみます。 |
▼kojimaさん: まだ簡単にしか使えていませんがいいですね!重宝しそうです。 ひとつ気づいたことがありました。jpgを2枚参照したファイルは上手く置き換えできましたが、jpgとtifを各1枚、計2枚参照したファイルは置き換えに失敗しているようで、tifの場所にも同じjpgの画像が表示されました。 ^@BM%temp%C__Users・・・の文字を適当に編集すると本来のtifの画像が表示されます。 |
▼kojimaさん: 建築フォーラムにアップして頂いた外部変形は、一度で画像同梱できるようになって使い易いですね。また、tifとjpgの画像を含むファイルでも問題なく画像同梱されるようになりました。ありがとうございます。 |
▼kojimaさん: >外部変形で画像同梱できます。 >BMP画像に変換しないで同梱しますので、標準機能に比べてファイルサイズが大幅に小さいです。 私は、どこが、どこで間違ったのでしょうか? 外部変形は、難しいです。 C:/jww/同梱画像の作成.bat:59:in `block (2 levels) in <main>': incompatible character encodings: Windows-31J and ASCII-8BIT (Encoding::CompatibilityError) from C:/jww/同梱画像の作成.bat:59:in `open' from C:/jww/同梱画像の作成.bat:59:in `block in <main>' from C:/jww/同梱画像の作成.bat:55:in `each' from C:/jww/同梱画像の作成.bat:55:in `<main>' C:/jww/同梱画像の作成.bat:62:in `open': no implicit conversion of nil into String (TypeError) from C:/jww/同梱画像の作成.bat:62:in `<main>' 続行するには何かキーを押してください . . . |
建築フォーラムにアップしました。 1回の操作で完了するように修正しました。 この外部変形は、実行前に「上書保存」が必須です。 http://www.farchi.jp/filemgmt/index.php?id=1790&comments=1 |
▼kojimaさん: >建築フォーラムにアップしました。 >1回の操作で完了するように修正しました。 >この外部変形は、実行前に「上書保存」が必須です。 親切なサポート方大感謝します。 出来ました。.jpgファイルが見事に.jwwファイルになりました。 画像同梱しております。開梱してjpgファイルを取り出すのはやっぱり キャプチャー・ペイントでしょうか? ありがとうございました。愛用させていただきます。 |