Sha256: 3625c9583f07dd7e5bd8e28814a23d981bef20fd18bdeb33f10aa028009d8da0
Contents?: true
Size: 1.26 KB
Versions: 2
Compression:
Stored size: 1.26 KB
Contents
require "numo/narray" require_relative "../../ext/rb_stb_image/rb_stb_image" module DNN module Image def self.read(file_name) raise Image::ReadError.new("#{file_name} is not found.") unless File.exist?(file_name) bin, w, h, n = Stb.stbi_load(file_name, 3) img = Numo::UInt8.from_binary(bin) img.reshape(h, w, 3) end def self.write(file_name, img, quality: 100) if img.shape.length == 2 img = Numo::UInt8[img, img, img].transpose(1, 2, 0).clone elsif img.shape[2] == 1 img = img.reshape(img.shape[0], img.shape[1]) img = Numo::UInt8[img, img, img].transpose(1, 2, 0).clone end h, w, ch = img.shape bin = img.to_binary case file_name when /\.png$/i stride_in_bytes = w * ch Stb.stbi_write_png(file_name, w, h, ch, bin, stride_in_bytes) when /\.bmp$/i Stb.stbi_write_bmp(file_name, w, h, ch, bin) when /\.jpg$/i, /\.jpeg/i Stb.stbi_write_jpg(file_name, w, h, ch, bin, quality) end rescue => ex raise Image::WriteError.new(ex.message) end end class Image::Error < StandardError; end class Image::ReadError < Image::Error; end class Image::WriteError < Image::Error; end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
ruby-dnn-0.10.1 | lib/dnn/image.rb |
ruby-dnn-0.10.0 | lib/dnn/image.rb |