colordom 1.2.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/src/lib.rs +21 -3
- data/lib/colordom/version.rb +1 -1
- metadata +1 -43
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/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,7 +1,7 @@
|
|
|
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
|
|
@@ -23,48 +23,6 @@ dependencies:
|
|
|
23
23
|
- - ">="
|
|
24
24
|
- !ruby/object:Gem::Version
|
|
25
25
|
version: '0'
|
|
26
|
-
- !ruby/object:Gem::Dependency
|
|
27
|
-
name: bundler
|
|
28
|
-
requirement: !ruby/object:Gem::Requirement
|
|
29
|
-
requirements:
|
|
30
|
-
- - "~>"
|
|
31
|
-
- !ruby/object:Gem::Version
|
|
32
|
-
version: '2.0'
|
|
33
|
-
type: :development
|
|
34
|
-
prerelease: false
|
|
35
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
36
|
-
requirements:
|
|
37
|
-
- - "~>"
|
|
38
|
-
- !ruby/object:Gem::Version
|
|
39
|
-
version: '2.0'
|
|
40
|
-
- !ruby/object:Gem::Dependency
|
|
41
|
-
name: minitest
|
|
42
|
-
requirement: !ruby/object:Gem::Requirement
|
|
43
|
-
requirements:
|
|
44
|
-
- - "~>"
|
|
45
|
-
- !ruby/object:Gem::Version
|
|
46
|
-
version: '5.0'
|
|
47
|
-
type: :development
|
|
48
|
-
prerelease: false
|
|
49
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
50
|
-
requirements:
|
|
51
|
-
- - "~>"
|
|
52
|
-
- !ruby/object:Gem::Version
|
|
53
|
-
version: '5.0'
|
|
54
|
-
- !ruby/object:Gem::Dependency
|
|
55
|
-
name: rake-compiler
|
|
56
|
-
requirement: !ruby/object:Gem::Requirement
|
|
57
|
-
requirements:
|
|
58
|
-
- - "~>"
|
|
59
|
-
- !ruby/object:Gem::Version
|
|
60
|
-
version: '1.2'
|
|
61
|
-
type: :development
|
|
62
|
-
prerelease: false
|
|
63
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
64
|
-
requirements:
|
|
65
|
-
- - "~>"
|
|
66
|
-
- !ruby/object:Gem::Version
|
|
67
|
-
version: '1.2'
|
|
68
26
|
description: Extract dominant colors from images using native extension implemented
|
|
69
27
|
in Rust.
|
|
70
28
|
email:
|