pxlsrt 1.8.0 → 1.8.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fa77df27b6a2bcd94f0b1e23855baa5219e25f16
4
- data.tar.gz: a3b71ee3d6f67fb348628bd917491db1193474bf
3
+ metadata.gz: f915f6a50a406234a4f1c274cde03d3bc48b6cd1
4
+ data.tar.gz: 8bfbb3d85700fb157eaede9f2c25ecec7e0b8a24
5
5
  SHA512:
6
- metadata.gz: 6dd4f1a8187e9ccf3bab9e7735a190f53491404caa40bc3ae776b53077b4193cb820a62ce6973151aa613bf0beed0b3d76193c69bdd53b66644445155197a72f
7
- data.tar.gz: 43d0246a46cebfce1a22e4e817a65c8ead7fb5efd40f8daa4a0a5850ba054030b3f485701cc1191ec42bb846baf8a849e85eb8af99ef190534383eb98fdfa0ac
6
+ metadata.gz: ace76e75cfb0c2f928ca5f66817074e8f01464a07c8fd189bfa736ef20307b0b0cd1015b08ae1d638b9003f83acac508f0ad166beed4846083cc809597f32e7e
7
+ data.tar.gz: 2ab1738d82add3b876efe9efd5bb9897ccd4958f1ab06939a564e37ff01545516ecee9b28dd02cd3c6beae6e7a709c6fe3c25a8bce1350364d1cae0addabbe29
data/lib/pxlsrt/colors.rb CHANGED
@@ -6,7 +6,7 @@ module Pxlsrt
6
6
  class Colors
7
7
  ##
8
8
  # List of sorting methods.
9
- METHODS = ["sum-rgb", "red", "green", "blue", "sum-hsb", "hue", "saturation", "brightness", "uniqueness", "luma", "random", "cyan", "magenta", "yellow", "alpha", "sum-rgba", "sum-hsba"]
9
+ METHODS = ["sum-rgb", "red", "green", "blue", "sum-hsb", "hue", "saturation", "brightness", "uniqueness", "luma", "random", "cyan", "magenta", "yellow", "alpha", "sum-rgba", "sum-hsba", "none"]
10
10
  ##
11
11
  # Converts a ChunkyPNG pixel into an array of the red, green, blue, and alpha values
12
12
  def self.getRGBA(pxl)
@@ -72,55 +72,63 @@ module Pxlsrt
72
72
  # * luma
73
73
  # * random
74
74
  # * alpha
75
+ # * none
75
76
  def self.pixelSort(list, how, reverse)
76
77
  mhm=[]
77
78
  Pxlsrt::Helpers.error(list) if list.length == 0
79
+ if reverse == 0
80
+ k = 1
81
+ elsif reverse == 1
82
+ k = -1
83
+ else
84
+ k = [-1, 1].sample
85
+ end
78
86
  case how.downcase
79
87
  when "sum-rgb"
80
- mhm = list.sort_by { |c| ChunkyPNG::Color.r(c)+ChunkyPNG::Color.g(c)+ChunkyPNG::Color.b(c) }
88
+ mhm = list.sort_by { |c| k * (ChunkyPNG::Color.r(c)+ChunkyPNG::Color.g(c)+ChunkyPNG::Color.b(c)) }
81
89
  when "sum-rgba"
82
- mhm =list.sort_by { |c| ChunkyPNG::Color.r(c)+ChunkyPNG::Color.g(c)+ChunkyPNG::Color.b(c)+ChunkyPNG::Color.a(c) }
90
+ mhm =list.sort_by { |c| k * (ChunkyPNG::Color.r(c)+ChunkyPNG::Color.g(c)+ChunkyPNG::Color.b(c)+ChunkyPNG::Color.a(c)) }
83
91
  when "red"
84
- mhm = list.sort_by { |c| ChunkyPNG::Color.r(c) }
92
+ mhm = list.sort_by { |c| k * ChunkyPNG::Color.r(c) }
85
93
  when "yellow"
86
- mhm =list.sort_by { |c| ChunkyPNG::Color.r(c)+ChunkyPNG::Color.g(c) }
94
+ mhm =list.sort_by { |c| k * (ChunkyPNG::Color.r(c)+ChunkyPNG::Color.g(c)) }
87
95
  when "green"
88
- mhm = list.sort_by { |c| ChunkyPNG::Color.g(c) }
96
+ mhm = list.sort_by { |c| k * ChunkyPNG::Color.g(c) }
89
97
  when "cyan"
90
- mhm =list.sort_by { |c| ChunkyPNG::Color.g(c)+ChunkyPNG::Color.b(c) }
98
+ mhm =list.sort_by { |c| k * (ChunkyPNG::Color.g(c)+ChunkyPNG::Color.b(c)) }
91
99
  when "blue"
92
- mhm = list.sort_by { |c| ChunkyPNG::Color.b(c) }
100
+ mhm = list.sort_by { |c| k * ChunkyPNG::Color.b(c) }
93
101
  when "magenta"
94
- mhm =list.sort_by { |c| ChunkyPNG::Color.r(c)+ChunkyPNG::Color.b(c) }
102
+ mhm =list.sort_by { |c| k * (ChunkyPNG::Color.r(c)+ChunkyPNG::Color.b(c)) }
95
103
  when "hue"
96
- mhm = list.sort_by { |c| ChunkyPNG::Color.to_hsb(c)[0] % 360 }
104
+ mhm = list.sort_by { |c| k * (ChunkyPNG::Color.to_hsb(c)[0] % 360) }
97
105
  when "saturation"
98
- mhm = list.sort_by { |c| ChunkyPNG::Color.to_hsb(c)[1] }
106
+ mhm = list.sort_by { |c| k * ChunkyPNG::Color.to_hsb(c)[1] }
99
107
  when "brightness"
100
- mhm = list.sort_by { |c| ChunkyPNG::Color.to_hsb(c)[2] }
108
+ mhm = list.sort_by { |c| k * ChunkyPNG::Color.to_hsb(c)[2] }
101
109
  when "sum-hsb"
102
- mhm = list.sort_by { |c| k = ChunkyPNG::Color.to_hsb(c); (k[0] % 360) / 360.0 + k[1] + k[2] }
110
+ mhm = list.sort_by { |c| hsb = ChunkyPNG::Color.to_hsb(c); k * ((hsb[0] % 360) / 360.0 + hsb[1] + hsb[2]) }
103
111
  when "sum-hsba"
104
- mhm = list.sort_by { |c| k = ChunkyPNG::Color.to_hsb(c); (k[0] % 360) / 360.0 + k[1] + k[2] + ChunkyPNG::Color.a(c) / 255.0 }
112
+ mhm = list.sort_by { |c| hsb = ChunkyPNG::Color.to_hsb(c); k * ((hsb[0] % 360) / 360.0 + hsb[1] + hsb[2] + ChunkyPNG::Color.a(c) / 255.0) }
105
113
  when "uniqueness"
106
114
  avg = Pxlsrt::Colors.colorAverage(list, true)
107
- mhm = list.sort_by { |c| Pxlsrt::Colors.colorUniqueness(c, [avg], true) }
115
+ mhm = list.sort_by { |c| k * Pxlsrt::Colors.colorUniqueness(c, [avg], true) }
108
116
  when "luma"
109
- mhm = list.sort_by { |c| ChunkyPNG::Color.r(c) * 0.2126 + ChunkyPNG::Color.g(c) * 0.7152 + ChunkyPNG::Color.b(c) * 0.0722 + ChunkyPNG::Color.a(c) }
117
+ mhm = list.sort_by { |c| k * (ChunkyPNG::Color.r(c) * 0.2126 + ChunkyPNG::Color.g(c) * 0.7152 + ChunkyPNG::Color.b(c) * 0.0722 + ChunkyPNG::Color.a(c)) }
110
118
  when "random"
111
119
  mhm = list.shuffle
112
120
  when "alpha"
113
- mhm = list.sort_by{ |c| ChunkyPNG::Color.a(c) }
121
+ mhm = list.sort_by{ |c| k * ChunkyPNG::Color.a(c) }
122
+ when "none"
123
+ if k == -1
124
+ mhm = list.reverse
125
+ else
126
+ mhm = list
127
+ end
114
128
  else
115
- mhm = list.sort_by { |c| ChunkyPNG::Color.r(c)+ChunkyPNG::Color.g(c)+ChunkyPNG::Color.b(c) }
116
- end
117
- if reverse == 0
118
- return mhm
119
- elsif reverse == 1
120
- return mhm.reverse
121
- else
122
- return [true, false].sample ? mhm : mhm.reverse
129
+ mhm = list.sort_by { |c| k * (ChunkyPNG::Color.r(c)+ChunkyPNG::Color.g(c)+ChunkyPNG::Color.b(c)) }
123
130
  end
131
+ return mhm
124
132
  end
125
133
  ##
126
134
  # Turns an RGB-like array into ChunkyPNG's color
@@ -1,5 +1,5 @@
1
1
  ##
2
2
  # The main module, your best friend.
3
3
  module Pxlsrt
4
- VERSION = "1.8.0"
4
+ VERSION = "1.8.1"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pxlsrt
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.0
4
+ version: 1.8.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - EVA-01
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-12-31 00:00:00.000000000 Z
11
+ date: 2015-02-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler