File: connection.rb

package info (click to toggle)
ruby-vips 2.1.4-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 5,164 kB
  • sloc: ruby: 3,530; makefile: 3
file content (26 lines) | stat: -rwxr-xr-x 710 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/usr/bin/ruby

require "vips"
require "down/http"

# byte_source = File.open ARGV[0], "rb"
# eg. https://images.unsplash.com/photo-1491933382434-500287f9b54b
byte_source = Down::Http.open(ARGV[0])

source = Vips::SourceCustom.new
source.on_read do |length|
  puts "reading #{length} bytes ..."
  byte_source.read length
end
source.on_seek do |offset, whence|
  puts "seeking to #{offset}, #{whence}"
  byte_source.seek(offset, whence)
end

byte_target = File.open ARGV[1], "wb"
target = Vips::TargetCustom.new
target.on_write { |chunk| byte_target.write(chunk) }
target.on_finish { byte_target.close }

image = Vips::Image.new_from_source source, "", access: :sequential
image.write_to_target target, ".jpg"