Jw_cad 情報交換室−その3New

 JWW についての情報交換の場としてお使いください
初心者の方などのご相談は Jw_cad 相談 室−その2をご利用ください
なお、情報交換室と相談室の両方に同じ内容を投稿するのはご遠慮ください

2009年9月以前の発言過去ログのページからご覧ください。

それ以降の過去ログは消失しています。
申し訳ありませんが、復活の予定はありません。


  新規投稿 ┃ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索 ┃設定 ┃過去ログ ┃ホーム  
460 / 1447     ←次へ | 前へ→

外部変形で画像同梱
 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


引用なし

パスワード


<Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; MALNJS; rv:11.0) like Gecko@ai126144007156.33.access-internet.ne.jp>
・ツリー全体表示

外部変形で画像同梱 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

460 / 1447     ←次へ | 前へ→
  新規投稿 ┃ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索 ┃設定 ┃過去ログ ┃ホーム  
 725528
ページ:  ┃  記事番号:  

C-BOARD Moyuku v1.03b3
Jw_cad Copyright (C)1997-2016 Jiro Shimizu & Yoshifumi Tanaka