imagetools 1.1.0 → 1.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.ruby-version +1 -1
- data/Gemfile.lock +4 -4
- data/lib/imagetools/imagefilter.rb +37 -9
- data/lib/imagetools/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c695900493f7e008bd7a71202f740d8cf7934017cc4dbd554102e52c45d68be5
|
4
|
+
data.tar.gz: 9d0085886aac557e3da673d47258a30bf5c8ebcee4d77ad641ce232e73c21bb1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9a0c730e84290e6f18afa19c5446d98e75fee8a2966229812d7e372e6e3dd9e38909c5f6c447ef8af9c807645b936248b50086709cce7f7df301e02536b60aef
|
7
|
+
data.tar.gz: c3e99d26db139acc25fc259449e6ba7344c9e788bd595ad6744a408ff7e5da253d07f00dc0a57a8036e464dc8c6f3763f07327fb137dddfd2be49f7aa37bcadb
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.7.5
|
data/Gemfile.lock
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
imagetools (1.
|
4
|
+
imagetools (1.4.0)
|
5
5
|
rmagick (= 3.2.0)
|
6
6
|
|
7
7
|
GEM
|
8
8
|
remote: https://rubygems.org/
|
9
9
|
specs:
|
10
|
-
minitest (5.
|
11
|
-
rake (13.0.
|
10
|
+
minitest (5.15.0)
|
11
|
+
rake (13.0.6)
|
12
12
|
rmagick (3.2.0)
|
13
13
|
|
14
14
|
PLATFORMS
|
@@ -21,4 +21,4 @@ DEPENDENCIES
|
|
21
21
|
rake (~> 13.0)
|
22
22
|
|
23
23
|
BUNDLED WITH
|
24
|
-
2.
|
24
|
+
2.1.4
|
@@ -44,22 +44,26 @@ module Imagetools
|
|
44
44
|
end
|
45
45
|
|
46
46
|
class Imagefilter
|
47
|
-
OTHER_JPG_SEARCH = /\.(large|huge|jpg_large)$/i
|
47
|
+
OTHER_JPG_SEARCH = /\.(large|huge|jpg_large|JPG)$/i
|
48
48
|
OTHER_JPG_REPLACE = '.jpg'
|
49
49
|
|
50
50
|
CONVERT_CMD = "convert"
|
51
51
|
DWEBP_CMD = "dwebp"
|
52
|
-
RESIZE_CMD = "mogrify -resize 1280x\\> "
|
52
|
+
# RESIZE_CMD = "mogrify -resize 1280x\\> "
|
53
|
+
RESIZE_CMD = "mogrify -background white -resize 1280x\\> "
|
53
54
|
ROTATE_CMD = "exiftran -ai "
|
54
55
|
COMPRESS_CMD = "jpegoptim --strip-all --max=90 "
|
55
56
|
EXTERNAL_CMDS = [RESIZE_CMD, ROTATE_CMD, COMPRESS_CMD]
|
56
57
|
|
57
58
|
WEBP_SEARCH = /(.+)\.webp/i
|
58
|
-
WEBP_REPLACE = '\1.
|
59
|
+
WEBP_REPLACE = '\1.png'
|
59
60
|
|
60
61
|
PNG_SEARCH = /(.+)\.png/i
|
61
62
|
PNG_REPLACE = '\1.jpg'
|
62
63
|
JPG_SEARCH = /(.+)\.jpe?g/i
|
64
|
+
HEIC_SEARCH = /(.+)\.heic/i
|
65
|
+
HEIC_REPLACE = '\1.jpg'
|
66
|
+
|
63
67
|
EXCLUDE_PAT = /^_/ # 先頭が"_"の場合は除外
|
64
68
|
|
65
69
|
def self.run(argv)
|
@@ -133,7 +137,7 @@ EOM
|
|
133
137
|
filename.sub(OTHER_JPG_SEARCH, OTHER_JPG_REPLACE)
|
134
138
|
end
|
135
139
|
|
136
|
-
def self.
|
140
|
+
def self.replace_webp2png(filename)
|
137
141
|
filename.sub(WEBP_SEARCH, WEBP_REPLACE)
|
138
142
|
end
|
139
143
|
|
@@ -141,6 +145,10 @@ EOM
|
|
141
145
|
filename.sub(PNG_SEARCH, PNG_REPLACE)
|
142
146
|
end
|
143
147
|
|
148
|
+
def self.replace_heic2jpg(filename)
|
149
|
+
filename.sub(HEIC_SEARCH, HEIC_REPLACE)
|
150
|
+
end
|
151
|
+
|
144
152
|
def self.match_exclude_image?(filename)
|
145
153
|
filename =~ EXCLUDE_PAT
|
146
154
|
end
|
@@ -171,10 +179,10 @@ EOM
|
|
171
179
|
if exclude_image?(filepath)
|
172
180
|
return
|
173
181
|
end
|
174
|
-
|
175
182
|
filepath = rename_image(filepath)
|
176
|
-
filepath =
|
183
|
+
filepath = webp2png(filepath)
|
177
184
|
filepath = png2jpg(filepath)
|
185
|
+
filepath = heic2jpg(filepath)
|
178
186
|
filepath = resize_jpg(filepath)
|
179
187
|
filepath = rotate_jpg(filepath)
|
180
188
|
filepath = compress_jpg(filepath)
|
@@ -199,13 +207,16 @@ EOM
|
|
199
207
|
dir = File.dirname(filepath)
|
200
208
|
topath = File.join(dir, toname)
|
201
209
|
puts "rename: #{filepath} => #{topath}"
|
202
|
-
FileUtils.mv(filepath, topath) unless @opts[:n]
|
210
|
+
# FileUtils.mv(filepath, topath, :force => true) unless @opts[:n]
|
211
|
+
# aaa.JPG => aaa.jpgを成功させるためにFIleUtils.mv(same fileエラーがでる)ではなくmvを使う
|
212
|
+
cmd = "mv \"#{filepath}\" \"#{topath}\""
|
213
|
+
system(cmd)
|
203
214
|
return topath
|
204
215
|
end
|
205
216
|
|
206
|
-
def
|
217
|
+
def webp2png(filepath)
|
207
218
|
fromname = File.basename(filepath)
|
208
|
-
toname = self.class.
|
219
|
+
toname = self.class.replace_webp2png(fromname)
|
209
220
|
return filepath if fromname == toname
|
210
221
|
|
211
222
|
dir = File.dirname(filepath)
|
@@ -235,6 +246,23 @@ EOM
|
|
235
246
|
return topath
|
236
247
|
end
|
237
248
|
|
249
|
+
def heic2jpg(filepath)
|
250
|
+
fromname = File.basename(filepath)
|
251
|
+
toname = self.class.replace_heic2jpg(fromname)
|
252
|
+
# puts "heic2jpg #{fromname}=>#{toname}"
|
253
|
+
return filepath if fromname == toname
|
254
|
+
|
255
|
+
dir = File.dirname(filepath)
|
256
|
+
topath = File.join(dir, toname)
|
257
|
+
puts "convert: #{filepath} => #{topath}"
|
258
|
+
# convert ~/Desktop/test.heic -o ~/Desktop/test.jpg
|
259
|
+
cmd = "#{CONVERT_CMD} \"#{filepath}\" \"#{topath}\""
|
260
|
+
if system(cmd)
|
261
|
+
FileUtils.rm(filepath)
|
262
|
+
end
|
263
|
+
return topath
|
264
|
+
end
|
265
|
+
|
238
266
|
def resize_jpg(filepath)
|
239
267
|
fromname = File.basename(filepath)
|
240
268
|
unless fromname =~ JPG_SEARCH
|
data/lib/imagetools/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: imagetools
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- src
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-02-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rmagick
|
@@ -171,7 +171,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
171
171
|
- !ruby/object:Gem::Version
|
172
172
|
version: '0'
|
173
173
|
requirements: []
|
174
|
-
rubygems_version: 3.
|
174
|
+
rubygems_version: 3.1.6
|
175
175
|
signing_key:
|
176
176
|
specification_version: 4
|
177
177
|
summary: Image Tools.
|