stbimage 0.6.1 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +88 -26
  3. data/lib/stbimage.rb +1 -1
  4. metadata +7 -8
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8f161bb612911051438045d1e2bbc1b9f317e9f67e4f018bb80beec9c8a63858
4
- data.tar.gz: 50b048e52a2991b135f416b82ea937c8e24b0adac9f05b97bcf3509bb16b5185
3
+ metadata.gz: 69de01a0ee15b7dc3ce3827d250b061b62d56a3348d49b4cf01f53773439c9ab
4
+ data.tar.gz: bd2e49f16a3aad172a99645012af9cab9e8cde0a6cb0eef7bb8250ddd888183d
5
5
  SHA512:
6
- metadata.gz: 5740266226e0fc8172979a758ecd719db09cce49bb8ded18fd43aa3001ae06d704cb2fa6606ae18342bf95c87bf2cfd544b1d74b16896a701cc7ccd7ee04e69a
7
- data.tar.gz: ee86a36e31f69327aaca6d84685881134cbcad9f0f4af1ff33a6e8037e84ee70b195f1ea5d7401a7ea1dcd515ede2f29f1fe5d36cbbade529cfd666390d9eca7
6
+ metadata.gz: fbac49f49b65b30ff3340a8d3d8e2dbb7fb551dae3286255e8fac24282766e8fbc2d3fc9dd43c5082ef9020a0f8aded035064f884cee4e2e7618d115ab85af6c
7
+ data.tar.gz: 8c31f5a515a4ea94524dfcdbcee97821792655ee8c227f97dab2663ac89527d3fe8820f899aaeaafdf67253c417dee306686914527cc09256fa0220b12fcab7f
data/README.md CHANGED
@@ -1,35 +1,18 @@
1
- # STBIMAGE
2
-
3
-
1
+ # stb-image ruby bindings
4
2
 
5
3
  Ruby binding of stb-image.h
6
4
 
7
- **Works well on windows!!!**
8
- **Added support for Linux (32, 64, arm)**
9
-
10
- * ### Supports (so far): ###
5
+ * ### Supports: ###
11
6
  <br>
12
7
 
13
8
  * **stbi_load** (Default image loader)
9
+ * **stbi_load_from_memory**
14
10
  * **stbi_load_16**
15
11
  * **stbi_loadf** (For `.hdr` images)
16
12
  * **stbi_info**
17
13
  * **stbi_image_free**
18
- * **stbi_failure_reason**
19
14
  * **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**
15
+ * and more...
33
16
 
34
17
 
35
18
  <br>
@@ -65,7 +48,7 @@ If you want to compile the shared libary yourself, Use the instruction below (ot
65
48
 
66
49
  # Precompiled shared libs (.dll, .so)
67
50
 
68
- You can find it under [dlls](dlls) folder, but they are also included in the gem
51
+ You can find it under [dlls](lib/dlls) folder, but they are also included in the gem
69
52
 
70
53
  <br>
71
54
 
@@ -97,13 +80,92 @@ nr_channels = ' ' * 4
97
80
 
98
81
  data = STBIMAGE.stbi_load("blue-poly.jpg", width, height, nr_channels, 0)
99
82
 
100
- puts data # You can use this data in OpenGL for instance.
83
+ data # the retrieved image data
84
+
85
+ width = width.unpack1('L')
86
+ height height.unpack1('L')
87
+ nr_channels = nr_channels.unpack1('L')
101
88
 
102
- puts width.unpack('l')[0]
103
- puts height.unpack('l')[0]
104
- puts nr_channels.unpack('l')[0]
89
+
90
+
91
+ # The retrieved data can be used in OpenGL for instance.
92
+ # glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, data)
93
+
94
+ stbi_image_free(data)
105
95
  ```
106
96
 
97
+ <br>
98
+
99
+ # Function list and examples:
100
+
101
+ ```ruby
102
+ include STBIMAGE
103
+
104
+ # 1. stbi_load(path_to_file, width_ptr, height_ptr, num_channels_ptr, desired_channels)
105
+
106
+ width = ' ' * 4 # width_ptr
107
+ height = ' ' * 4 # height_ptr
108
+ nr_channels = ' ' * 4 # num_channels_ptr
109
+
110
+ data = stbi_load("blue-poly.jpg", width, height, nr_channels, 0)
111
+
112
+ # retrieve the values from the pointers
113
+ width = width.unpack1('L')
114
+ height = height.unpack1('L')
115
+ nr_channels = nr_channels.unpack1('L')
116
+ ```
117
+
118
+ ```ruby
119
+ include STBIMAGE
120
+
121
+ # 2. stbi_load_from_memory(ptr_to_image_data_array, image_array_size_in_bytes, width_ptr, height_ptr, num_channels_ptr, desired_channels)
122
+
123
+ white_texture_raw = [
124
+ 0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A, 0x00, 0x00, 0x00, 0x0D, 0x49, 0x48, 0x44, 0x52,
125
+ 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x20, 0x08, 0x06, 0x00, 0x00, 0x00, 0x73, 0x7A, 0x7A,
126
+ 0xF4, 0x00, 0x00, 0x00, 0x01, 0x73, 0x52, 0x47, 0x42, 0x00, 0xAE, 0xCE, 0x1C, 0xE9, 0x00, 0x00,
127
+ 0x00, 0x2F, 0x49, 0x44, 0x41, 0x54, 0x58, 0x47, 0xED, 0xD0, 0x41, 0x11, 0x00, 0x00, 0x0C, 0xC2,
128
+ 0xB0, 0xE1, 0x5F, 0x34, 0x93, 0xC1, 0x27, 0x55, 0xD0, 0x4B, 0xDA, 0xF6, 0x86, 0xC5, 0x00, 0x01,
129
+ 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0xB0, 0x16,
130
+ 0x78, 0x31, 0x4C, 0x7F, 0xA1, 0xF9, 0xB6, 0x23, 0xF9, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4E,
131
+ 0x44, 0xAE, 0x42, 0x60, 0x82
132
+ ]
133
+
134
+ texture_size = white_texture_raw.size
135
+ texture_ptr = Fiddle::Pointer.to_ptr(white_texture_raw.pack('C*'))
136
+
137
+ width = ' ' * 4 # width_ptr
138
+ height = ' ' * 4 # height_ptr
139
+ nr_channels = ' ' * 4 # num_channels_ptr
140
+
141
+ data = stbi_load_from_file(texture_ptr, texture_size, width, height, nr_channels, 0)
142
+
143
+ # retrieve the values from the pointers
144
+ width = width.unpack1('L')
145
+ height = height.unpack1('L')
146
+ nr_channels = nr_channels.unpack1('L')
147
+ ```
148
+
149
+ ```ruby
150
+ include STBIMAGE
151
+
152
+ # 3. stbi_set_flip_vertically_on_load(value)
153
+ # before getting reading the image:
154
+
155
+ stbi_set_flip_vertically_on_load(1) # flips the image vertically on load
156
+ stbi_set_flip_vertically_on_load(0) # disable flipping
157
+ ```
158
+
159
+ ```ruby
160
+ include STBIMAGE
161
+
162
+ # 4. stbi_image_free(img_data)
163
+ # freeing up the image in memory after we loaded the image. It's essential in order to avoid big memory usage.
164
+
165
+ stbi_image_free(data)
166
+ ```
167
+
168
+
107
169
  <br>
108
170
 
109
171
  # Credit
data/lib/stbimage.rb CHANGED
@@ -113,7 +113,7 @@ module STBIMAGE
113
113
  # 'stbi_load_from_callbacks'
114
114
  # 'stbi_load_from_file'
115
115
  # 'stbi_load_from_file_16'
116
- # 'stbi_load_from_memory'
116
+ 'stbi_uc const* stbi_load_from_memory(stbi_uc const*, int, int*, int*, int*, int)',
117
117
  # 'stbi_load_gif_from_memory'
118
118
  'float* stbi_loadf(char const*, int*, int*, int*, int)',
119
119
  # 'stbi_loadf_from_callbacks'
metadata CHANGED
@@ -1,19 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stbimage
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Keresztes
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-01-11 00:00:00.000000000 Z
11
+ date: 2021-10-31 00:00:00.000000000 Z
12
12
  dependencies: []
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. Checkout the Homepage for usage in Windows, MacOs,
16
- Linux or ARM"
13
+ description: 'A practical image importer/loader. It wraps stb_image.h (ver:2.26 -2020.07.13-).
14
+ Supported image formats are: JPEG, PNG, TGA, BMP, PSD, GIF(not animation), HDR,
15
+ PIC, PNM. Checkout the Homepage for usage in Windows, MacOs, Linux or ARM'
17
16
  email: ''
18
17
  executables: []
19
18
  extensions: []
@@ -48,8 +47,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
48
47
  - !ruby/object:Gem::Version
49
48
  version: '0'
50
49
  requirements: []
51
- rubygems_version: 3.1.4
50
+ rubygems_version: 3.1.6
52
51
  signing_key:
53
52
  specification_version: 4
54
- summary: Bindings for the often used header stb_image.h
53
+ summary: Bindings of the often used header stb_image.h
55
54
  test_files: []