waifu2x 0.1.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4470dbafba59b80455cbac8d5b1e704784fba5f3
4
- data.tar.gz: a7135ee6ebc190dfbe34ef231b619f4cd0dc9e87
3
+ metadata.gz: 711f2a3a411fa50f68a4ac8287c0e0d879d8170b
4
+ data.tar.gz: 5642040d68b9a617c05c0d41e8028c4fe882fe90
5
5
  SHA512:
6
- metadata.gz: 501949667feb47f21b7e648e916198a4aa09a25da0a523da9e149531701bf03e58c91a856964231c8a8142752320a3a41f75efceefeb710c1eeb92eded66688f
7
- data.tar.gz: 88e8b65d9c265446b40857bc3e9384c743cd71188dbca4e2e51c67aa825730c5c6ae54fdd2d5db89b17f04ea41e264242fbe080d3fb118a3bd1d86b8f58f13d4
6
+ metadata.gz: 6d704a1e76c5e09e4aa913a59207517efa70f672e7e2cbd144d1df7d5defcd93637939f88cd34b0717991c5f1db48e91a8838c2a93eec3edb1bbf85f8e38e88a
7
+ data.tar.gz: 4583ef9d0705d18b6ae2c1eb90c894244caeb87407833f98fd1a03aa7184252b56714356af2e8052dcf805e8f2678b7552eca9f35b08cbc9f98cf7dd94d48c25
data/README.md CHANGED
@@ -30,6 +30,9 @@ bundle install
30
30
  # convert image.png with 2x upscaling
31
31
  Waifu2x.convert('image.png', nil, { scale: 2 })
32
32
 
33
+ # convert image.png from remote url
34
+ Waifu2x.convert('http://example.net/image.png', nil, { scale: 2 })
35
+
33
36
  # convert image.png to converted.png without noise reduction and with 2x upscaling
34
37
  Waifu2x.convert('image.png', 'converted.png', { noise: 0, scale: 2 })
35
38
  ```
@@ -40,6 +43,9 @@ Waifu2x.convert('image.png', 'converted.png', { noise: 0, scale: 2 })
40
43
  # convert sample.jpg with 2x upscaling
41
44
  waifu2x sample.jpg -s 2
42
45
 
46
+ # convert sample.jpg from remote url
47
+ waifu2x http://example.net/sample.jpg -s 2
48
+
43
49
  # convert sample.jpg to output.jpg without noise reduction and with 2x upscaling
44
50
  waifu2x sample.jpg output.jpg -n 0 -s 2
45
51
  ```
@@ -6,38 +6,46 @@ module Waifu2x
6
6
  USER_AGENT = "Waifu2x Ruby Gem #{Waifu2x::VERSION}".freeze
7
7
  API_ENDPOINT = 'http://waifu2x.udp.jp/api'.freeze
8
8
 
9
- # Creates a new image
9
+ # Converts image from a local file or URL
10
10
  #
11
- # @param [String] image Image filename to convert
12
- # @param [String, nil] filename Output image filename with extension
11
+ # @param [String] source Source of image to convert (url or filename)
12
+ # @param [String, nil] output_file Name of output image file (with extension)
13
13
  # @param [Hash] options
14
14
  # @option options [Integer] :noise Noise reduction (0 - none, 1 - low, 2 - high), default: 2
15
15
  # @option options [Integer] :scale Upscaling (0 - none, 1 - 1.6x, 2 - 2x), default: 0
16
- # @return [String] Output image filename
17
- def self.convert(image, filename=nil, options={})
16
+ # @option options [Boolean] :raw When true will return a converted image in raw data (binary)
17
+ # @return [String] converted image in raw data (binary) or output filename
18
+ def self.convert(source, output_file=nil, options={})
18
19
  noise = options[:noise] || 2
19
20
  scale = options[:scale] || 0
20
21
 
21
22
  validate_options! noise, scale
22
23
 
23
- begin
24
- file = File.open(image)
25
- rescue
26
- raise InvalidImage, "Can't open image file: #{image}"
24
+ if source.start_with?('http', 'ftp')
25
+ source_params = { url: source }
26
+ else
27
+ begin
28
+ source_params = { file: File.open(source) }
29
+ rescue
30
+ raise InvalidImage, "Can't open image file: #{source}"
31
+ end
27
32
  end
28
33
 
29
34
  response = Typhoeus.post(API_ENDPOINT,
30
35
  headers: { 'User-Agent' => USER_AGENT },
31
- body: { noise: noise.to_s, scale: scale.to_s, file: file }
36
+ body: { noise: noise, scale: scale }.merge(source_params)
32
37
  )
33
38
 
34
- raise InvalidImage, response.body if response.body == 'ERROR: unsupported image format.'
39
+ raise InvalidImage, response.body if response.body.include?('ERROR')
35
40
  raise Waifu2x::ServerError, "Request to Waifu2x API failed with response code: #{response.code}" if response.code != 200
36
41
 
37
- filename = output_filename(file) if filename.to_s.strip.empty?
38
-
39
- File.write(filename, response.body)
40
- filename
42
+ if options[:raw]
43
+ response.body
44
+ else
45
+ output_file = output_filename(source) if output_file.to_s.strip.empty?
46
+ File.write(output_file, response.body)
47
+ output_file
48
+ end
41
49
  end
42
50
 
43
51
  # @private
@@ -1,3 +1,3 @@
1
1
  module Waifu2x
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: waifu2x
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nihad Abbasov
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-07-07 00:00:00.000000000 Z
11
+ date: 2015-11-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: typhoeus
@@ -120,7 +120,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
120
120
  version: '0'
121
121
  requirements: []
122
122
  rubyforge_project:
123
- rubygems_version: 2.4.8
123
+ rubygems_version: 2.5.0
124
124
  signing_key:
125
125
  specification_version: 4
126
126
  summary: Ruby wrapper and CLI for waifu2x