Documentation ¶
Index ¶
- Constants
- Variables
- func Colordiff(a, b uint32) float64
- func Compare(b *Banner, pngbytes []byte) float64
- func Convert(imagebytes []byte, fromformat, toformat string) []byte
- func Distance(c1, c2 color.Color) float64
- func DrawPattern(svg *tinysvg.Tag, Pattern int, Color string)
- func FindBest(fitnessfunction func([]byte, []byte) float64, png_bytes []byte, ...)
- func Likeness(png1, png2 []byte) float64
- func NewRandomBanner() (b *Banner, how []*Pattern)
- func Seed()
- func Value(r, g, b uint32) float64
- func Valuediff(a, b float64) float64
- type Banner
- type Pattern
- type Population
- type PopulationFitness
- type Solution
Constants ¶
View Source
const ( BannerW = 20 BannerH = 40 )
View Source
const ( POPSIZE = 800 MAXGENERATIONS = 50 // 3000 )
View Source
const ( // Same order as minecraft.gamepedia.com/Banner PatternLowerThird = iota // Base Fess Banner PatternUpperThird // Chief Fess Banner PatternLeftThird // Pale Dexter Banner PatternRightThird // Pale Sinister Banner PatternCenterThird // Pale Banner PatternHorizontalLine // Fess Banner PatternDiagonal1 // Bend Banner PatternDiagonal2 // Bend Sinister Banner PatternDiaCross // Saltire Banner PatternCross // Cross Banner PatternUpperLeftTriangle // Per Bend Sinister Banner PatternUpperRightTriangle // Per Bend Banner PatternLowerLeftTriangle // Per Bend Inverted Banner PatternLowerRightTriangle // Per Bend Sinister Inverted Banner PatternLeftHalf // Per Pale Banner PatternRightHalf // Per Pale Inverted Banner PatternUpperHalf // Per Fess Banner PatternLowerHalf // Per Fess Inverted Banner PatternLowerLeftSquare // Base Dexter Canton Banner PatternLowerRightSquare // Base Sinister Canton Banner PatternUpperLeftSquare // Chief Dexter Canton Banner PatternUpperRightSqaure // Chief Sinister Canton Banner PatternLowerTriangle // Chevron Banner PatternUpperTriangle // Inverted Chevron Banner PatternLowerWaves // Base Indented Banner PatternUpperWaves // Chief Indented Banner PatternCircle // Roundel Banner PatternDiamond // Lozenge Banner PatternBorder // Bordure Banner PatternWaveBorder // Black/Dyed Borduer Indented Banner PatternBricks // Black/Dyed Field Masoned Banner PatternGradientDown // Gradient Banner PatternGradientUp // Base Gradient Banner PatternCreeper // Black/Dyed Creeper Charge Banner PatternSkull // Black/Dyed Skull Charge Banner PatternFlower // Black/Dyed Flower Charge Banner PatternLogo // Black/Dyed Mojang Charge Banner // Custom Patterns PatternFull // Background ColorWhite = iota ColorOrange ColorMagenta ColorLightBlue ColorYellow ColorLime ColorPink ColorGray ColorLightGray ColorCyan ColorPurple ColorBlue ColorBrown ColorGreen ColorRed ColorBlack // Custom Colors ColorBrightWhite )
Variables ¶
View Source
var PatternDesc = map[int]string{ PatternLowerThird: "Base Fess Banner", PatternUpperThird: "Chief Fess Banner", PatternLeftThird: "Pale Dexter Banner", PatternRightThird: "Pale Sinister Banner", PatternCenterThird: "Pale Banner", PatternHorizontalLine: "Fess Banner", PatternDiagonal1: "Bend Banner", PatternDiagonal2: "Bend Sinister Banner", PatternDiaCross: "Saltire Banner", PatternCross: "Cross Banner", PatternUpperLeftTriangle: "Per Bend Sinister Banner", PatternUpperRightTriangle: "Per Bend Banner", PatternLowerLeftTriangle: "Per Bend Inverted Banner", PatternLowerRightTriangle: "Per Bend Sinister Inverted Banner", PatternLeftHalf: "Per Pale Banner", PatternRightHalf: "Per Pale Inverted Banner", PatternUpperHalf: "Per Fess Banner", PatternLowerHalf: "Per Fess Inverted Banner", PatternLowerLeftSquare: "Base Dexter Canton Banner", PatternLowerRightSquare: "Base Sinister Canton Banner", PatternUpperLeftSquare: "Chief Dexter Canton Banner", PatternUpperRightSqaure: "Chief Sinister Canton Banner", PatternLowerTriangle: "Chevron Banner", PatternUpperTriangle: "Inverted Chevron Banner", PatternLowerWaves: "Base Indented Banner", PatternUpperWaves: "Chief Indented Banner", PatternCircle: "Roundel Banner", PatternDiamond: "Lozenge Banner", PatternBorder: "Bordure Banner", PatternWaveBorder: "Borduer Indented Banner", PatternBricks: "Field Masoned Banner", PatternGradientDown: "Gradient Banner", PatternGradientUp: "Base Gradient Banner", PatternCreeper: "Creeper Charge Banner", PatternSkull: "Skull Charge Banner", PatternFlower: "Flower Charge Banner", PatternLogo: "Mojang Charge Banner", PatternFull: "Background", // contains filtered or unexported fields }
Functions ¶
func Likeness ¶
Find how visually similar two images are, from 0..1 Does not take the human vision into account, only rgb values
func NewRandomBanner ¶
Types ¶
type Banner ¶
type Banner struct { Patterns []*Pattern // contains filtered or unexported fields }
func (*Banner) AddPattern ¶
type Pattern ¶
type Pattern struct {
// contains filtered or unexported fields
}
func NewPattern ¶
func NewRandomPattern ¶
func NewRandomPattern() Pattern
func (*Pattern) ColorString ¶
TODO: Switch the switch with a lookup like in PatternString
func (*Pattern) PatternString ¶
type Population ¶
type Population []Solution
A population is a collection of solutions
func NewPopulation ¶
func NewPopulation(size int) Population
type PopulationFitness ¶
type PopulationFitness []float64
For storing the population fitnesses before sorting
func NewPopulationFitness ¶
func NewPopulationFitness(popsize int) PopulationFitness
Source Files ¶
Click to show internal directories.
Click to hide internal directories.