phantoshot 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NmFmMzIyNDE2NmIyZTQyMDBmNzhmMDI3MjY4NzBkOTk1MDlhYmVmOQ==
4
+ NmI1ZjRkNjA0MDI4ZTllZmEzMGU4MmNmMDQwYzE0Y2Y2YWI0N2MyMg==
5
5
  data.tar.gz: !binary |-
6
- ZDY1MDIzMzY2YWYyNjFkMjBiNThhYmU3ODI5ZGRhOWNiZTJmMDljMw==
6
+ Y2I5MzhiZjUxMjJkYTBmYzI5OTZiYjY1YjA4NmUxMjQxODE3OGMxNg==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- NGQ2YTQ1Y2EwNjExNWQyNDFmODllNWU4ZWM2ZmIwMzI1NGEzODdiNGI1M2Vl
10
- ODEzYjg3ZTMyZGIzOGU3ZmJjODBiNDAxZDY4YjNmOWM5NjI2Y2YxYmM2ZWJl
11
- MmIzYWEzYjZlNTJiODJmMWYzZGI5ZGM2MGQ1OWQ1YTYxNzUwZmE=
9
+ NTEyZjQwNmVmOWIyMGJlOTkyY2MwOGVlNDJlN2RmNGUwZjU1YWQ5MjQwNGEw
10
+ NzM4MjE0ZjJmZTcxMTdjYjRjN2RkZmZhMWI1YzQ5OTA4NGEzYzEyMjUxNmU2
11
+ NzI0MjExOWU0ODkxM2ZkNmE5NmY4ZDIzODc1Y2EzMjVlZDdiNDU=
12
12
  data.tar.gz: !binary |-
13
- ZDg3Y2FmNjY4NjQ2ZTgyYWYxMDlkZTMyOTNhYmJjMGU0NjFhNjhlNTY2ZDY2
14
- YzI1MGFmMjAyNjc1NzMzMWIzZmE4OTQzOTY4MTRiZWQ2ZTlmN2E3MmM1ZTYx
15
- NWY4Y2M2YWE3ZGIwMGE0Yjc3MTE1OGJmNWVkYTgwMWNjNzliYzE=
13
+ MGEwNWFmMDQ5MjBmNGM4OTE0Y2I2YTQ3NzIyMWExYjQxMTljZWZiNzdjYzg2
14
+ NWIxZDQyOTA4NDBmYjk0OTY2ZTUxM2JiYWQ2N2IyZDkzOWM3Y2I4ZDcxODk4
15
+ YjFmYWIwZjExNGY4MWFjMjk1NTUyNDdlODdiYTRjYTQxNGQxZTI=
data/Gemfile CHANGED
@@ -9,6 +9,7 @@ group :development do
9
9
  gem 'fakeweb'
10
10
  gem 'pry'
11
11
  gem 'fastimage'
12
+ gem 'rmagick'
12
13
  # gem 'debugger'
13
14
  # gem 'better_errors'
14
15
  end
data/Gemfile.lock CHANGED
@@ -24,6 +24,7 @@ GEM
24
24
  method_source (~> 0.8)
25
25
  slop (~> 3.4)
26
26
  rake (10.0.4)
27
+ rmagick (2.13.2)
27
28
  rspec (2.13.0)
28
29
  rspec-core (~> 2.13.0)
29
30
  rspec-expectations (~> 2.13.0)
@@ -46,4 +47,5 @@ DEPENDENCIES
46
47
  phantoshot!
47
48
  pry
48
49
  rake
50
+ rmagick
49
51
  rspec (~> 2.8)
@@ -3,22 +3,16 @@ var system = require('system');
3
3
 
4
4
  var result = {
5
5
  url: system.args[1],
6
- width: parseInt(system.args[2]),
7
- height: parseInt(system.args[3])
8
6
  };
9
7
 
10
8
 
11
- page.viewportSize = {
12
- width: result.width,
13
- height: result.height
14
- };
15
-
16
9
  page.open(result.url, function() {
17
10
 
18
11
  result.file_format = 'PNG';
19
12
  result.image_data = page.renderBase64(result.file_format);
20
13
 
21
- console.log( JSON.stringify(result) );
22
14
 
15
+
16
+ console.log( JSON.stringify(result) );
23
17
  phantom.exit();
24
18
  });
@@ -1,24 +1,53 @@
1
1
  module Phantoshot
2
+ require 'rmagick'
3
+ include Magick
4
+
2
5
  def make_screenshot(url, opts={})
3
6
 
4
- width = opts[:width] || 600
5
- height = opts[:height] || 400
7
+ desired_width = opts[:width]
8
+ desired_height = opts[:height]
6
9
 
7
- res = MultiJson.load( phantom_command(url, width, height) )
10
+ res = MultiJson.load(
11
+ phantom_command(url)
12
+ )
8
13
 
9
14
  hsh = Hashie::Mash.new(res)
10
15
 
11
16
  # Decode it for writing out to binary
12
- hsh[:image_data] = Base64.decode64( hsh[:image_data] )
17
+ hsh[:image_data] = Base64.decode64( hsh[:image_data] )
18
+
19
+ tempfile = Tempfile.new('foo.png')
20
+ tempfile.write(hsh[:image_data])
21
+ tempfile.close
22
+
23
+ img = Image.read(tempfile.path)[0]
24
+ org_width = img.columns
25
+ org_height = img.rows
26
+
27
+ if desired_width
28
+ img = img.resize_to_fit(desired_width, org_height)
29
+ end
30
+
31
+ if desired_height
32
+ img = img.crop(0, 0, img.columns, desired_height)
33
+ end
34
+
35
+ tempfile2 = Tempfile.new('bar.png')
36
+
37
+ img.write(tempfile2.path)
38
+
39
+ tempfile2.close
40
+
41
+ hsh[:image_data] = open(tempfile2.path){ |f| f.read }
13
42
  return hsh
14
43
  end
15
44
 
16
45
 
17
46
  # returns JSON string with these attributes:
18
- # :image_data (in base64), :width, :height, :file_format (default is PNG), and :url
47
+ # :image_data (in base64), :file_format (default is PNG), and :url
19
48
  #
20
- def phantom_command(url, width, height)
21
- cmd = "phantomjs #{JS_LIB_NAME} #{url} #{width} #{height}"
49
+ def phantom_command(url)
50
+ cmd = "phantomjs #{JS_LIB_NAME} #{url}"
22
51
  `#{cmd}`
23
52
  end
24
53
  end
@@ -1,3 +1,3 @@
1
1
  module Phantoshot
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: phantoshot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Callahan
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-06-04 00:00:00.000000000 Z
12
+ date: 2013-06-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler