Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Sort pixels in your images in artistic ways.
C#
Branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
PixelSorter
PixelSorter.sln
PixelSorter.sln.DotSettings
README.md

README.md

PixelSorter

Sort pixels in your images in artistic ways.

Requires .NET Framework 3.5 (Client Profile will suffice). Project files are compatible with VisualStudio 2010 or newer.

Download

PixelSorter_r21_NET35.exe (for .NET 3.5+, 31 KiB)
SHA-1 checksum: 036b49b9459275d038a353b2f6f6ea63bd68abc9

PixelSorter_r21_NET40.exe (for .NET 4.0+, 32 KiB)
SHA-1 checksum: 5e0dbe71ea1d46ef724491f967678a46678a6ed5

Examples

Parameter Explanation

Algorithms

Determines the sorting pattern.

  • Whole Image - All segments are sorted row-by-row, top-down, left-to-right.
  • Row - Segments within each row are sorted left-to-right.
  • Column - Segments within each column are sorted top-to-bottom.
  • Segment - All pixels within each segment are sorted row-by-row, top-down, left-to-right. Segments are not re-arranged.

Order

Determines sorting order.

  • Ascending - Segments with lowest value come first.
  • Descending - Segments with highest value come first.
  • Ascending Reflected - Segments with lowest values are in the center.
  • Descending Reflected - Segments with highest values are in the center.
  • Ascending Thresholded - Each row/column is divided into regions, divided based on difference between adjacent segments. Segments are sorted lowest-value-first within each region. Only works with Row or Column algorithm.
  • Descending Thresholded - Same as Ascending Thresholded, but segments are sorted highest-value-first within each region.
  • Random - Segments are arranged randomly. If algorithm is Segment, pixels within each segment are arranged randomly instead.

Metric

Determines how the "value" of a single pixel is measured.

  • Intensity - (R+G+B)/3 (HSI color space)
  • Lightness - (max(R,G,B) + min(R,G,B))/2 (HSL color space)
  • Value - max(R,G,B) (HSV color space)
  • Luma - R0.2126 + G0.7152 + B*0.0722 (Approximate luminosity per Rec. 709)
  • Hue (HSL) - Approximate Hue, HSL color space. Follows the rainbow order (ROYGBIV).
  • Hue (Lab) - Accurate Hue, CIE 1976 Lab color space.
  • Chroma (HSL) - max(R,G,B) - min(R,G,B). Approximate color intensity (HSL color space)
  • Chroma (Lab) - Accurate color intensity, CIE 1976 Lab color space.
  • Saturation (HSB) - (max(R,G,B) - min(R,G,B))/max(R,G,B) Approximate color saturation (HSB color space)
  • Saturation (HSI) - 1 - min(R,G,B)/((R+G+B)/3) Approximate color saturation (HSI color space)
  • Saturation (HSL) - Approximate color saturation (HSL color space)
  • Saturation (Lab) - sqrt(a²+b²)/L Accurate color saturation, CIE 1976 Lab color space.
  • Red Channel - Raw red component of RGB color.
  • Green Channel - Raw green component of RGB color.
  • Blue Channel - Raw blue component of RGB color.
  • Red - R - max(G,B) Dominance of color red.
  • Green - G - max(R,B) Dominance of color green.
  • Blue - B - max(R,G) Dominance of color blue.
  • Cyan - (G+B) - max(R*1.5, |G-B|) Dominance of color cyan (or absence of red)
  • Magenta - (R+B) - max(G*1.5, |R-B|) Dominance of color magenta (or absence of green).
  • Yellow - (R+G) - max(B*1.5, |R-G|) Dominance of color yellow (or absence of blue).
  • LabA - Green-magenta balance. The a\* component of CIE 1976 Lab color space.
  • LabB - Blue-yellow balance. The b\* component of CIE 1976 Lab color space.

Sampling

Determines how the total "value" of a multi-pixel segment is measured.

  • Center - Only value of the middle pixel is measured. Fast. Inaccurate for detailed images and large segments.
  • Average (Mean) - Values of all pixels in each segment are added up.
  • Average (Median) - Values of "an average pixel", such that about half of the segment have same or lower value, and other half has same or higher value.
  • Maximum - Highest value of all pixels in a segment.
  • Minimum - Lowest value of all pixels in a segment.
  • Random - Value of a random pixel within the segment is chosen.
Something went wrong with that request. Please try again.