Files
functional-programming/lab3/app/Main.hs

31 lines
1.1 KiB
Haskell

module Main (main) where
import Codec.Picture
import qualified Data.Vector.Unboxed as VU
import Lib
caesarShift :: Int
caesarShift = 66
main :: IO ()
main = do
inputText <- readFile "resources/biography.txt"
putStrLn $ take 30 inputText
let alphabet = createAlphabetFromText inputText
putStrLn $ show (length alphabet)
let encryptedText = encryptCaesar alphabet caesarShift inputText
putStrLn $ take 30 encryptedText
let encryptedTextBits = textToBits encryptedText
putStrLn $ concat (take 30 (map show (VU.toList encryptedTextBits)))
let encryptedTextFromBits = bitsToText encryptedTextBits
putStrLn $ take 30 encryptedTextFromBits
let decryptedText = decryptCaesar alphabet caesarShift encryptedTextFromBits
putStrLn $ take 30 decryptedText
readImageResult <- readImage "resources/david.bmp"
case readImageResult of
Left err -> putStrLn $ "Ошибка при чтении изображения: " ++ err
Right dynImg -> do
let img = convertRGB8 dynImg
putStrLn $ "Ширина: " ++ show (imageWidth img)
putStrLn $ "Высота: " ++ show (imageHeight img)