이토이로후 #irof_history

8476 단어 Groovy자바
이것은 이로후 Advent Calendar의 19 일째 항목입니다.

전날은, @datsuns 씨의 「 이로후 씨와 놀고 싶니? 그렇다면 vim이라면 네! #irof_history 」였습니다.

소개



전날까지의 Calendar를 되돌아 보면, 2차원으로부터 3차원까지 여러가지 사상에 존재하는 이로후씨입니다만, 우연히 원래 있는 사건에는 아직 계시지 않는다는 것을 깨달았습니다.
조금 구현화해 보려고 생각했습니다.

아스키 아트



사용 된 라이브러리는 여기 → h tp // w w. 로쿠. rg/지타 c/
maven 저장소에 없었습니다.
그래서 jar를 다운로드해야합니다.

라이브러리를 이용하여 jpeg에서 html로 변환해 보겠습니다.
아래의 쉘 스크립트를 실행하면 jpeg에서 변환합니다.
사용하는 파일은 여기

いろふ

방금 다운로드한 라이브러리의 jar과 같은 위치에 설치하고 파일 이름을 'irof.jpeg'로 변경하십시오.

convert.sh
#!/bin/bash 

echo 'convert start.'

noise_option="$1"

if [ -z $noise_option ]; then
  noise_option=0
fi

echo "noise_option: [$noise_option]"

if [ -e irof.html ]; then
    rm irof.html
fi

java -jar jitac-0.2.0.jar -H -o irof.html -n $noise_option irof.jpeg

if [ -e irof.html ]; then
    echo "convert success!"
fi

exit 0


html로 해 보았으므로, HTTP 서버로 표시해 보겠습니다.
모처럼이므로 Groovy에서 HTTP 서버를 시작해 보겠습니다.
참고로 한 것은 여기 → Groovy의 간단한 HTTP 서버

단순히 표시하는 것만으로는 재미있지 않으므로 라이브러리에 있는 노이즈 기능을 이용해 보겠습니다.

irof_to_ascii.groovy

import com.sun.net.httpserver.HttpExchange
import com.sun.net.httpserver.HttpHandler
import com.sun.net.httpserver.HttpServer

class Converter {

  void convert(int parcent = 0) {
        def process = "./convert.sh ${parcent/100}".execute()
        println "${process.text}"
    }

}

def PORT = 9000
HttpServer server = HttpServer.create(new InetSocketAddress(PORT), 0)

server.createContext('/', new HttpHandler() {

    @Override
    public void handle(HttpExchange exchange) throws IOException {

        def noise = [ 0, 10, 20]

        def random = new Random().nextInt(noise.size)

        new Converter().convert(noise[random])

        def file = new File('irof.html')

        assert file.canRead()

        def bytes = file.text.bytes

        exchange.getResponseHeaders().add("Content-Type", "text/html")
        exchange.sendResponseHeaders(200, bytes.length)
        exchange.getResponseBody().write(bytes)
        exchange.close()
    }

})
server.start()


server.sh
#!/bin/bash 

groovy irof_to_ascii.groovy


이제 http://localhost:9000/에 액세스 할 때마다 표정이 바뀌 었습니까? 처럼 보입니다.

결론



이렇게 @irof 씨는 아스키 아트가 되어 버렸습니다.
다양한 형태로 변환자재인 @irof씨는, 다음에 어떤 식으로 우리를 놀라게 해 줄까요?

내일은 @tan_go238 님의 irof 명령을 brew로 설치해보기 입니다.
잘 부탁드립니다.

좋은 웹페이지 즐겨찾기