colordom 1.1.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/ext/colordom/Cargo.toml +7 -3
- data/ext/colordom/src/lib.rs +21 -3
- data/lib/colordom/version.rb +1 -1
- metadata +3 -48
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f9028c72428c0dbc083567f6daaa3ba792d8931e01874ffc9fbee8223017b57a
|
|
4
|
+
data.tar.gz: b3c9ac6bd14b441e4d001dc154cdb986a52d8d4fbf7b3d3e1e28119cb92f1c7f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d98fb9108bfb8fa467ae8d68ed5b3d6db19fc4ccd3358adafb164f63d3a1c2a464f5ecb135b8636d2af95dd3ef753f769342223013b395606fe37872f4e1e146
|
|
7
|
+
data.tar.gz: d5d2954f7bf03b24e06a99eb9f9230fd07d9a285e368b3dbada47064cd7ac1fc7212e380c2dda4c704ad81e3eb6c45f19dc40ebfacc386e4eb1d4d8d758427a1
|
data/ext/colordom/Cargo.toml
CHANGED
|
@@ -6,9 +6,8 @@ edition = "2018"
|
|
|
6
6
|
|
|
7
7
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
|
8
8
|
[dependencies]
|
|
9
|
-
magnus = "0.
|
|
10
|
-
|
|
11
|
-
dominant_color = "0.3"
|
|
9
|
+
magnus = "0.8"
|
|
10
|
+
dominant_color = "0.4"
|
|
12
11
|
palette_extract = "0.1"
|
|
13
12
|
|
|
14
13
|
[dependencies.kmeans_colors]
|
|
@@ -21,6 +20,11 @@ version = "0.6"
|
|
|
21
20
|
default-features = false
|
|
22
21
|
features = ["std"]
|
|
23
22
|
|
|
23
|
+
[dependencies.image]
|
|
24
|
+
version = "0.25"
|
|
25
|
+
default-features = false
|
|
26
|
+
features = ["default-formats"]
|
|
27
|
+
|
|
24
28
|
[lib]
|
|
25
29
|
name = "colordom"
|
|
26
30
|
crate-type = ["cdylib"]
|
data/ext/colordom/src/lib.rs
CHANGED
|
@@ -83,16 +83,24 @@ impl Image {
|
|
|
83
83
|
self.has_alpha()
|
|
84
84
|
);
|
|
85
85
|
|
|
86
|
-
|
|
86
|
+
let bytes_per_color = if self.has_alpha() { 4 } else { 3 };
|
|
87
|
+
|
|
88
|
+
colors.chunks(bytes_per_color)
|
|
87
89
|
.take(max_colors)
|
|
88
90
|
.map(|x| Color::new(x[0], x[1], x[2]))
|
|
89
91
|
.collect::<Vec<Color>>()
|
|
90
92
|
}
|
|
91
93
|
|
|
92
94
|
fn mediancut(&self, max_colors: usize) -> Vec<Color> {
|
|
95
|
+
let encoding = if self.has_alpha() {
|
|
96
|
+
PixelEncoding::Rgba
|
|
97
|
+
} else {
|
|
98
|
+
PixelEncoding::Rgb
|
|
99
|
+
};
|
|
100
|
+
|
|
93
101
|
let colors = palette_extract::get_palette_with_options(
|
|
94
102
|
&self.pixels(),
|
|
95
|
-
|
|
103
|
+
encoding,
|
|
96
104
|
Quality::new(6),
|
|
97
105
|
MaxColors::new(max_colors as u8),
|
|
98
106
|
PixelFilter::None
|
|
@@ -110,7 +118,17 @@ impl Image {
|
|
|
110
118
|
let verbose = false;
|
|
111
119
|
let seed = 0;
|
|
112
120
|
|
|
113
|
-
let
|
|
121
|
+
let pixels = self.pixels();
|
|
122
|
+
let rgb: Vec<u8> = if self.has_alpha() {
|
|
123
|
+
pixels.chunks(4)
|
|
124
|
+
.filter(|pixel| pixel[3] == 255)
|
|
125
|
+
.flat_map(|pixel| [pixel[0], pixel[1], pixel[2]])
|
|
126
|
+
.collect()
|
|
127
|
+
} else {
|
|
128
|
+
pixels.to_vec()
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
let lab: Vec<Lab> = Srgb::from_raw_slice(&rgb).iter()
|
|
114
132
|
.map(|x| x.into_format().into_color())
|
|
115
133
|
.collect();
|
|
116
134
|
|
data/lib/colordom/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: colordom
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Jonian Guveli
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: bin
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
13
|
name: rb_sys
|
|
@@ -24,48 +23,6 @@ dependencies:
|
|
|
24
23
|
- - ">="
|
|
25
24
|
- !ruby/object:Gem::Version
|
|
26
25
|
version: '0'
|
|
27
|
-
- !ruby/object:Gem::Dependency
|
|
28
|
-
name: bundler
|
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
|
30
|
-
requirements:
|
|
31
|
-
- - "~>"
|
|
32
|
-
- !ruby/object:Gem::Version
|
|
33
|
-
version: '2.0'
|
|
34
|
-
type: :development
|
|
35
|
-
prerelease: false
|
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
-
requirements:
|
|
38
|
-
- - "~>"
|
|
39
|
-
- !ruby/object:Gem::Version
|
|
40
|
-
version: '2.0'
|
|
41
|
-
- !ruby/object:Gem::Dependency
|
|
42
|
-
name: minitest
|
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
|
44
|
-
requirements:
|
|
45
|
-
- - "~>"
|
|
46
|
-
- !ruby/object:Gem::Version
|
|
47
|
-
version: '5.0'
|
|
48
|
-
type: :development
|
|
49
|
-
prerelease: false
|
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
-
requirements:
|
|
52
|
-
- - "~>"
|
|
53
|
-
- !ruby/object:Gem::Version
|
|
54
|
-
version: '5.0'
|
|
55
|
-
- !ruby/object:Gem::Dependency
|
|
56
|
-
name: rake-compiler
|
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
|
58
|
-
requirements:
|
|
59
|
-
- - "~>"
|
|
60
|
-
- !ruby/object:Gem::Version
|
|
61
|
-
version: '1.2'
|
|
62
|
-
type: :development
|
|
63
|
-
prerelease: false
|
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
-
requirements:
|
|
66
|
-
- - "~>"
|
|
67
|
-
- !ruby/object:Gem::Version
|
|
68
|
-
version: '1.2'
|
|
69
26
|
description: Extract dominant colors from images using native extension implemented
|
|
70
27
|
in Rust.
|
|
71
28
|
email:
|
|
@@ -90,7 +47,6 @@ homepage: https://github.com/hardpixel/colordom
|
|
|
90
47
|
licenses:
|
|
91
48
|
- MIT
|
|
92
49
|
metadata: {}
|
|
93
|
-
post_install_message:
|
|
94
50
|
rdoc_options: []
|
|
95
51
|
require_paths:
|
|
96
52
|
- lib
|
|
@@ -105,8 +61,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
105
61
|
- !ruby/object:Gem::Version
|
|
106
62
|
version: '0'
|
|
107
63
|
requirements: []
|
|
108
|
-
rubygems_version: 3.
|
|
109
|
-
signing_key:
|
|
64
|
+
rubygems_version: 3.6.9
|
|
110
65
|
specification_version: 4
|
|
111
66
|
summary: Extract dominant colors from images
|
|
112
67
|
test_files: []
|