From 23585f58a8ee040ecc8a352c99692ccebb2e310d Mon Sep 17 00:00:00 2001 From: Simon Kellet Date: Wed, 22 Jan 2025 17:19:48 +0000 Subject: [PATCH] now can add chance to glitch --- glitch.go | 5 ++--- main.go | 18 +++++++++++++++--- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/glitch.go b/glitch.go index fd6b323..ccf7a89 100644 --- a/glitch.go +++ b/glitch.go @@ -71,12 +71,11 @@ func copyImage(inputFile string, outputFile string) error { return nil } -func generateGlitchedSequence(inputFile string, totalImages int, shitSize int64, iterations int64) { +func generateGlitchedSequence(inputFile string, totalImages int, shitSize int64, iterations int64, chanceToRandom int32) { for i := 1; i <= totalImages; i++ { outputFileName := fmt.Sprintf("img_glitched_%d.jpeg", i) // Generate unique filenames - // Randomly decide whether to glitch or copy the image - if rand.Int32N(2) == 0 { + if rand.Int32N(100) < chanceToRandom { // Glitched image err := glitchImage(inputFile, outputFileName, shitSize, iterations) check(err, "failed to glitch image: %w") diff --git a/main.go b/main.go index d156bfd..8b94ded 100644 --- a/main.go +++ b/main.go @@ -15,12 +15,13 @@ import ( const MAX_SIZE = 1000000 func main() { - if len(os.Args) < 5 { - fmt.Println("Usage: go run main.go ") + if len(os.Args) < 6 { + fmt.Println("Usage: go run main.go ") return } sourceFile := os.Args[1] + numCopies, err := strconv.Atoi(os.Args[2]) if err != nil || numCopies <= 0 { fmt.Println("Invalid number of copies. Must be a positive integer.") @@ -39,8 +40,19 @@ func main() { iterations, err := strconv.ParseInt(os.Args[4], 10, 8) check(err, "Cannot parse iterations. Must be a positive integer") + chanceToRandom, err := strconv.ParseInt(os.Args[5], 10, 32) + if err != nil || chanceToRandom < 0 { + fmt.Println("Invalid random chance value. Must be a positive integer (0-100).") + return + } else if chanceToRandom > 100 { + fmt.Println("Invalid random chance value. Must range between 0 to 100.") + return + } + + fmt.Fprintf(os.Stdout, "Generating:\n %d copies of %s\n %d random bytes of data\n %d interations(s)\n Chance to random %d%%\n\n", + numCopies, sourceFile, shitSize, iterations, chanceToRandom) makeOutputDir() - generateGlitchedSequence(sourceFile, numCopies, shitSize, iterations) + generateGlitchedSequence(sourceFile, numCopies, shitSize, iterations, int32(chanceToRandom)) ffmpegGenerateMP4() clearOutputDir() }