stbimage 0.2.0 → 0.5.0

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
  SHA256:
3
- metadata.gz: cd2fac88ebb74d0fbcd77f9c8023b3e7069d1fc959e8e81bbeffb6781dede3e7
4
- data.tar.gz: 0fff22ec0287d01a33191db63938d50eb902c58ec1eeb5785ac1ea844633f9c2
3
+ metadata.gz: bbcc8434378681a4cb30e911d9d1af4e4f121c300e1a291db7b33eeb5505a4f3
4
+ data.tar.gz: b96b64b299432b39f088a2dbbfd064e77858b1fb57b7b220f89cc5f2f503e39f
5
5
  SHA512:
6
- metadata.gz: 85bd11a5b36083ccb9d15b0bd8b13cb544456c043aaaffb0ff2b725093ce80f917696d1f5d33f157570339da2b15778a0932839c4e195d72555279319334ebab
7
- data.tar.gz: 6b36b4ec6d9711f68348c63890a494b00dc6ed008f3dccdbec891f92d69549e61549a877d7205af83f2fea7ba2add5aa8245ac8a218a862327b946ede7b41295
6
+ metadata.gz: 01faa35b8bd2b50520ff54924f1d22442a0ec3f3de319597ef4e9a8cda3b549a8160bad6b04af87ea2e16c90394fdfd51e8589b0ab2a12eec84867715cd900dd
7
+ data.tar.gz: 0ea9d9f48aff7874d1986ef2075b0ce6084f29d27e7fc2bc391e2e8ae706a0e9f8b58d3d99c10b820e44347a821e6a4b625d76a122ba62942fc8325b11833064
@@ -0,0 +1,116 @@
1
+ # STBIMAGE
2
+
3
+
4
+
5
+ Ruby binding of stb-image.h
6
+
7
+ **Works well on windows!!!**
8
+ **Added support for Linux (32, 64, arm)**
9
+
10
+ * ### Supports (so far): ###
11
+ <br>
12
+
13
+ * **stbi_load** (Default image loader)
14
+ * **stbi_load_16**
15
+ * **stbi_loadf** (For `.hdr` images)
16
+ * **stbi_info**
17
+ * **stbi_image_free**
18
+ * **stbi_failure_reason**
19
+ * **stbi_set_flip_vertically_on_load**
20
+ * **stbi_set_flip_vertically_on_load_thread**
21
+ * **stbi_set_unpremultiply_on_load**
22
+ * **stbi_convert_iphone_png_to_rgb**
23
+ * **stbi_hdr_to_ldr_gamma**
24
+ * **stbi_hdr_to_ldr_scale**
25
+ * **stbi_is_16_bit**
26
+ * **stbi_is_hdr**
27
+ * **stbi_zlib_decode_buffer**
28
+ * **stbi_zlib_decode_malloc**
29
+ * **stbi_zlib_decode_malloc_guesssize**
30
+ * **stbi_zlib_decode_malloc_guesssize_headerflag**
31
+ * **stbi_zlib_decode_noheader_buffer**
32
+ * **stbi_zlib_decode_noheader_malloc**
33
+
34
+
35
+ <br>
36
+
37
+ # Installation
38
+
39
+ * Windows:\
40
+ `gem install stbimage`
41
+
42
+ * Linux/macOs:\
43
+ `gem install stbimage`
44
+
45
+ *Note: In macOs you have to compile the dynamic libary (.so) yourself. Although I planned to include it in the future*
46
+
47
+ <br>
48
+
49
+ # .dll libs
50
+
51
+ You can find it under [dlls](dlls) folder
52
+
53
+ <br>
54
+
55
+ # Usage
56
+
57
+ ```ruby
58
+ require 'stbimage'
59
+
60
+ # use this to load the dll (from gem version 0.2.3 and above)! Only For windows and linux yet
61
+ STBIMAGE.load_lib()
62
+
63
+ # In macOs you have to provide a dynamic libary (.so) by yourself
64
+ # STBIMAGE.load_lib('your_name.so', 'absolute_path_to_file')
65
+
66
+
67
+ width = ' ' * 4
68
+ height = ' ' * 4
69
+ nr_channels = ' ' * 4
70
+
71
+ data = STBIMAGE.stbi_load("blue-poly.jpg", width, height, nr_channels, 0)
72
+
73
+ puts data # You can use this data in OpenGL for instance.
74
+
75
+ puts width.unpack('l')[0]
76
+ puts height.unpack('l')[0]
77
+ puts nr_channels.unpack('l')[0]
78
+ ```
79
+
80
+ <br>
81
+
82
+ # Credit
83
+
84
+ * Credit to Vaiorabbit who made the bindings of opengl into ruby! This wrapper is based on his glfw wrapper.
85
+ His repo: https://github.com/vaiorabbit/ruby-opengl
86
+
87
+ * stb_image.h by Sean Barret. Repo: https://github.com/nothings/stb/blob/master/stb_image.h
88
+
89
+
90
+ <br>
91
+
92
+ # Licence
93
+
94
+ MIT License
95
+
96
+ ```
97
+ Copyright (c) 2021 Samuel Keresztes
98
+
99
+ Permission is hereby granted, free of charge, to any person obtaining a copy
100
+ of this software and associated documentation files (the "Software"), to deal
101
+ in the Software without restriction, including without limitation the rights
102
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
103
+ copies of the Software, and to permit persons to whom the Software is
104
+ furnished to do so, subject to the following conditions:
105
+
106
+ The above copyright notice and this permission notice shall be included in all
107
+ copies or substantial portions of the Software.
108
+
109
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
110
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
111
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
112
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
113
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
114
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
115
+ SOFTWARE.
116
+ ```
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -29,20 +29,53 @@ module STBIMAGE
29
29
  end
30
30
 
31
31
 
32
- @@glfw_import_done = false
32
+ @@stbi_image_import_done = false
33
33
 
34
- =begin
35
- Load native dll libary
36
- - lib = the name of the file
37
- - path = route to the file
38
- =end
34
+ # Load native dll libary
39
35
  def self.load_lib(lib = nil, path = nil, output_error = false)
40
36
  if lib == nil && path == nil
41
- if RUBY_PLATFORM == "x64-mswin64_140" || RUBY_PLATFORM == "x64-mingw32"
42
- lib, path = 'stbDLL_x64.dll', '../dlls'
43
- elsif RUBY_PLATFORM == "x86-mingw32"
44
- lib, path = 'stbDLL_x86.dll', '../dlls'
37
+
38
+ if RUBY_PLATFORM =~ /x86/
39
+
40
+ # puts "You have a 32-bit Architecture ruby"
41
+ if RUBY_PLATFORM =~ /mswin/ || RUBY_PLATFORM =~ /mingw/
42
+ # puts "With Windows"
43
+ lib, path = 'stbDLL_x86.dll', "#{__dir__}/../dlls"
44
+ elsif RUBY_PLATFORM =~ /linux/ || RUBY_PLATFORM =~ /cygwin/
45
+ # puts "With Linux"
46
+ lib, path = 'libstb_x86.so', "#{__dir__}/../dlls"
47
+ elsif RUBY_PLATFORM =~ /darwin/
48
+ # puts "With macOS"
49
+ else
50
+ # puts "I have no idea what os are you using, so it's possible that stbimage wont't work"
51
+ end
52
+
53
+ elsif RUBY_PLATFORM =~ /arm/
54
+
55
+ # puts "You have a arm architecture"
56
+ lib, path = 'libstb_arm.so', "#{__dir__}/../dlls"
57
+
58
+ elsif RUBY_PLATFORM =~ /java/
59
+
60
+ # puts "You have jruby!"
61
+
62
+ else
63
+
64
+ # puts "You have a 64-bit Architecture ruby"
65
+ if RUBY_PLATFORM =~ /mswin/ || RUBY_PLATFORM =~ /mingw/
66
+ # puts "With Windows"
67
+ lib, path = 'stbDLL_x64.dll', "#{__dir__}/../dlls"
68
+ elsif RUBY_PLATFORM =~ /linux/ || RUBY_PLATFORM =~ /cygwin/
69
+ # puts "With Linux"
70
+ lib, path = 'libstb_x64.so', "#{__dir__}/../dlls"
71
+ elsif RUBY_PLATFORM =~ /darwin/
72
+ # puts "With macOS"
73
+ else
74
+ # puts "I have no idea what os are you using, so it's possible that stbimage wont't work"
75
+ end
76
+
45
77
  end
78
+
46
79
  end
47
80
 
48
81
  if path
@@ -50,31 +83,31 @@ Load native dll libary
50
83
  else
51
84
  dlload (lib)
52
85
  end
53
- import_symbols(output_error) unless @@glfw_import_done
86
+ import_symbols(output_error) unless @@stbi_image_import_done
54
87
  end
55
88
 
56
89
  @@lib_signature = [
57
90
  'void stbi_convert_iphone_png_to_rgb(int)',
58
- 'const char *stbi_failure_reason(void)',
91
+ 'const char* stbi_failure_reason(void)',
59
92
  'void stbi_hdr_to_ldr_gamma(float)',
60
93
  'void stbi_hdr_to_ldr_scale(float)',
61
94
  'void stbi_image_free(void*)',
62
95
  'int stbi_info(char const* , int*, int*, int*)',
63
- # 'int stbi_info_from_callbacks(stbi_io_callbacks const*, void*, int*, int*, comp*)'
96
+ # 'stbi_info_from_callbacks'
64
97
  # 'stbi_info_from_file'
65
98
  # 'stbi_info_from_memory'
66
- # 'stbi_is_16_bit'
99
+ 'int stbi_is_16_bit(char const*)',
67
100
  # 'stbi_is_16_bit_from_callbacks'
68
101
  # 'stbi_is_16_bit_from_file'
69
102
  # 'stbi_is_16_bit_from_memory'
70
- # 'stbi_is_hdr'
103
+ 'int stbi_is_hdr(char const*)',
71
104
  # 'stbi_is_hdr_from_callbacks'
72
105
  # 'stbi_is_hdr_from_file'
73
106
  # 'stbi_is_hdr_from_memory'
74
- # 'stbi_ldr_to_hdr_gamma'
75
- # 'stbi_ldr_to_hdr_scale'
107
+ 'void stbi_ldr_to_hdr_gamma(float)',
108
+ 'void stbi_ldr_to_hdr_scale(float)',
76
109
  'stbi_uc* stbi_load(char const*, int*, int*, int*, int)',
77
- # 'stbi_load_16'
110
+ 'stbi_us* stbi_load_16(char const*, int*, int*, int*, int)',
78
111
  # 'stbi_load_16_from_callbacks'
79
112
  # 'stbi_load_16_from_memory'
80
113
  # 'stbi_load_from_callbacks'
@@ -82,37 +115,38 @@ Load native dll libary
82
115
  # 'stbi_load_from_file_16'
83
116
  # 'stbi_load_from_memory'
84
117
  # 'stbi_load_gif_from_memory'
85
- # 'stbi_loadf'
118
+ 'float* stbi_loadf(char const*, int*, int*, int*, int)',
86
119
  # 'stbi_loadf_from_callbacks'
87
120
  # 'stbi_loadf_from_file'
88
121
  # 'stbi_loadf_from_memory'
89
- 'void stbi_set_flip_vertically_on_load(int)'
90
- # 'stbi_set_flip_vertically_on_load_thread'
91
- # 'stbi_set_unpremultiply_on_load'
92
- # 'stbi_zlib_decode_buffer'
93
- # 'stbi_zlib_decode_malloc'
94
- # 'stbi_zlib_decode_malloc_guesssize'
95
- # 'stbi_zlib_decode_malloc_guesssize_headerflag'
96
- # 'stbi_zlib_decode_noheader_buffer'
97
- # 'stbi_zlib_decode_noheader_malloc'
122
+ 'void stbi_set_flip_vertically_on_load(int)',
123
+ 'void stbi_set_flip_vertically_on_load_thread(int)',
124
+ 'void stbi_set_unpremultiply_on_load(int)',
125
+ 'int stbi_zlib_decode_buffer(char*, int, const char*, int)',
126
+ 'char* stbi_zlib_decode_malloc(const char*, int, int*)',
127
+ 'char* stbi_zlib_decode_malloc_guesssize(const char*, int, int, int*)',
128
+ 'char* stbi_zlib_decode_malloc_guesssize_headerflag(const char*, int, int, int*, int)',
129
+ 'int stbi_zlib_decode_noheader_buffer(char*, int, const char*, int)',
130
+ 'char* stbi_zlib_decode_noheader_malloc(const char*, int, int*)'
131
+
98
132
  ]
99
133
 
100
134
  def self.import_symbols(output_error = false)
101
135
  typealias 'stbi_uc', 'unsigned char'
102
- typealias 'stbi_us', 'unsigned short'
103
-
136
+ typealias 'stbi_us', 'unsigned short'
104
137
 
105
138
  # function
106
139
  @@lib_signature.each do |sig|
140
+
107
141
  begin
108
142
  extern sig
109
143
  rescue
110
144
  $stderr.puts("[Warning] Failed to import #{sig}.") if output_error
111
145
  end
146
+
112
147
  end
113
148
 
114
- @@glfw_import_done = true
149
+ @@stbi_image_import_done = true
150
+
115
151
  end
116
-
117
- end
118
-
152
+ end
@@ -0,0 +1,51 @@
1
+ RUBY_PLATFORM = x86-mingw32
2
+
3
+ if RUBY_PLATFORM =~ /x86/
4
+
5
+ puts "You have a 32-bit Architecture ruby"
6
+ if RUBY_PLATFORM =~ /mswin/ || RUBY_PLATFORM =~ /mingw/
7
+ puts "With Windows"
8
+ lib, path = 'stbDLL_x86.dll', "#{__dir__}/../dlls"
9
+ elsif RUBY_PLATFORM =~ /linux/ || RUBY_PLATFORM =~ /cygwin/
10
+ puts "With Linux"
11
+ lib, path = 'libstb_x86.so', "#{__dir__}/../dlls"
12
+ elsif RUBY_PLATFORM =~ /darwin/
13
+ puts "With macOS"
14
+ else
15
+ puts "I have no idea what os are you using, so it's possible that stbimage wont't work"
16
+ end
17
+
18
+ elsif RUBY_PLATFORM =~ /arm/
19
+
20
+ puts "You have a arm architecture"
21
+ lib, path = 'libstb_arm.so', "#{__dir__}/../dlls"
22
+
23
+ elsif RUBY_PLATFORM =~ /java/
24
+
25
+ puts "You have jruby!"
26
+
27
+ else
28
+
29
+ puts "You have a 64-bit Architecture ruby"
30
+ if RUBY_PLATFORM =~ /mswin/ || RUBY_PLATFORM =~ /mingw/
31
+ puts "With Windows"
32
+ lib, path = 'stbDLL_x64.dll', "#{__dir__}/../dlls"
33
+ elsif RUBY_PLATFORM =~ /linux/ || RUBY_PLATFORM =~ /cygwin/
34
+ puts "With Linux"
35
+ lib, path = 'libstb_x64.so', "#{__dir__}/../dlls"
36
+ elsif RUBY_PLATFORM =~ /darwin/
37
+ puts "With macOS"
38
+ else
39
+ puts "I have no idea what os are you using, so it's possible that stbimage wont't work"
40
+ end
41
+
42
+ end
43
+
44
+
45
+ # if RUBY_PLATFORM == "x64-mswin64_140" || RUBY_PLATFORM == "x64-mingw32"
46
+ # lib, path = 'stbDLL_x64.dll', "#{__dir__}/../dlls"
47
+ # elsif RUBY_PLATFORM == "x86-mingw32"
48
+ # lib, path = 'stbDLL_x86.dll', "#{__dir__}/../dlls"
49
+ # elsif RUBY_PLATFORM =~ /x86_linux/
50
+ # lib, path = 'libstd_x86.so', "#{__dir__}/../dlls"
51
+ # else
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stbimage
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Keresztes
@@ -10,15 +10,24 @@ bindir: bin
10
10
  cert_chain: []
11
11
  date: 2021-01-09 00:00:00.000000000 Z
12
12
  dependencies: []
13
- description: "!Beta Version! Will be developed! So far compatible with: stbi_load,
14
- stbi_set_flip_vertically_on_load(). Only works with windows so far!!!!!. PLEASE
15
- CHECK OUT THE HOMEPAGE FOR MORE INFO AND EXAMPLE"
13
+ description: "!Beta Version! A practical image importer/loader. It wraps stb_image.h
14
+ (ver:2.26 -2020.07.13-). Supported image formats are: JPEG, PNG, TGA, BMP, PSD,
15
+ GIF(not animation), HDR, PIC, PNM. Only works well with windows (win32/win64) and
16
+ with linux so far, but for macOS, users have to include . Checkout the Homepage
17
+ for more info (installation, usage and other information)"
16
18
  email: ''
17
19
  executables: []
18
20
  extensions: []
19
21
  extra_rdoc_files: []
20
22
  files:
23
+ - README.md
24
+ - dlls/libstb_arm.so
25
+ - dlls/libstb_x64.so
26
+ - dlls/libstb_x86.so
27
+ - dlls/stbDLL_x64.dll
28
+ - dlls/stbDLL_x86.dll
21
29
  - lib/stbimage.rb
30
+ - utils/system_check.rb
22
31
  homepage: https://github.com/fellowchap-samuel/stbimage-ruby
23
32
  licenses:
24
33
  - MIT