過去ログ

                                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

 ───────────────────────────────────────  ■題名 : Re:外部変形で画像同梱  ■名前 : マチャプチャレ  ■日付 : 17/1/10(火) 6:41  -------------------------------------------------------------------------
   ▼kojimaさん:
わーい!素敵な外部変形をありがとうございます。
早速使ってみます。

 ───────────────────────────────────────  ■題名 : Re:外部変形で画像同梱  ■名前 : マチャプチャレ  ■日付 : 17/1/10(火) 13:51  -------------------------------------------------------------------------
   ▼kojimaさん:
まだ簡単にしか使えていませんがいいですね!重宝しそうです。

ひとつ気づいたことがありました。jpgを2枚参照したファイルは上手く置き換えできましたが、jpgとtifを各1枚、計2枚参照したファイルは置き換えに失敗しているようで、tifの場所にも同じjpgの画像が表示されました。

^@BM%temp%C__Users・・・の文字を適当に編集すると本来のtifの画像が表示されます。

 ───────────────────────────────────────  ■題名 : Re:外部変形で画像同梱  ■名前 : マチャプチャレ  ■日付 : 17/1/14(土) 10:51  -------------------------------------------------------------------------
   ▼kojimaさん:
建築フォーラムにアップして頂いた外部変形は、一度で画像同梱できるようになって使い易いですね。また、tifとjpgの画像を含むファイルでも問題なく画像同梱されるようになりました。ありがとうございます。

 ───────────────────────────────────────  ■題名 : Re:外部変形は難しい。  ■名前 : 入門者  ■日付 : 17/1/11(水) 2:11  -------------------------------------------------------------------------
   ▼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>'
続行するには何かキーを押してください . . .

 ───────────────────────────────────────  ■題名 : Re:外部変形は難しい。  ■名前 : kojima  ■日付 : 17/1/12(木) 14:50  -------------------------------------------------------------------------
   建築フォーラムにアップしました。
1回の操作で完了するように修正しました。
この外部変形は、実行前に「上書保存」が必須です。

http://www.farchi.jp/filemgmt/index.php?id=1790&comments=1

 ───────────────────────────────────────  ■題名 : Re:解決しました。。  ■名前 : 入門者  ■日付 : 17/1/14(土) 1:27  -------------------------------------------------------------------------
   ▼kojimaさん:
>建築フォーラムにアップしました。
>1回の操作で完了するように修正しました。
>この外部変形は、実行前に「上書保存」が必須です。

親切なサポート方大感謝します。
出来ました。.jpgファイルが見事に.jwwファイルになりました。
画像同梱しております。開梱してjpgファイルを取り出すのはやっぱり
キャプチャー・ペイントでしょうか?
 ありがとうございました。愛用させていただきます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 262