2014-11-13 2 views
-2

크기가 100 x 100 인 QR 코드가 주어지면 2D 비트 배열 (1 또는 0을 유지하는 array[100][100])을 만들어야합니다. 배열을 더 잘 이해하려면 look at the array given in this Stack Overflow question.100x100에서 2D 비트 배열 만들기 QR 코드

검색 시간이 지나면 Google Code에 작업이 완료된 것처럼 보입니다. 문제는 코드가 내 컴퓨터에서 열 수없는 .go 파일로 제공된다는 것입니다.

이상적인 솔루션은 다른 언어로 솔루션을 제공하거나 Google 코드에서 찾은 코드를 사용해야하는 방식을 제안합니다.

도움을 주셔서 감사합니다.

+0

텍스트 편집기 (예 : 메모장)에서'.go' 파일을 열거 나 웹 브라우저 (게시 한 링크)에서 파일을 볼 수 있습니다. – topskip

+2

당신이하려고하는 것이 확실하지 않습니다. "주어진 QR 코드"; 어떤 형식으로? PNG 이미지? 종이에 인쇄 되었습니까? 참조한 소스는 디코딩이 아닌 QR 인코딩에 사용됩니다. – ANisus

+0

QR 코드는 PNG 형식으로 제공되며 내가 아는 URL을 인코딩했습니다. 또한 URL 인코딩을위한 매개 변수가 있으므로 솔루션이 제대로 작동하는 것으로 보입니다. – peterkshultz

답변

2

URL (또는 다른 텍스트)을 QR 코드 배열로 인코딩하고 2D 배열의 텍스트 프리젠 테이션을 표시하려는 경우 Go에서 쉽게이 작업을 수행 할 수있는 명령 행 도구를 만들 수 있습니다.
다음은 앞에서 언급 한 go 패키지를 사용한 도구의 예입니다.

package main 

import (
    "flag" 
    "fmt" 
    "os" 

    "code.google.com/p/go-qrcode" 
) 

var (
    url = flag.String("url", "", "Url to encode") 
    level = flag.Int("level", 0, "Recovery level. 0 is lowest, 3 is highest") 
) 

func main() { 
    flag.Parse() 

    if *level < 0 || *level > 3 { 
     fmt.Println("Level must be between 0 and 3") 
     os.Exit(1) 
    } 

    qr, err := qrcode.New(*url, qrcode.RecoveryLevel(*level)) 
    if err != nil { 
     fmt.Println(err) 
     os.Exit(1) 
    } 

    printArray(qr.Bitmap()) 
} 

func printArray(a [][]bool) { 
    fmt.Println("{") 
    for _, x := range a { 
     fmt.Print(" {") 
     out := "" 
     for _, y := range x { 
      if y { 
       out += "1" 
      } else { 
       out += "0" 
      } 
      fmt.Print(out) 
      out = "," 
     } 
     fmt.Println("}") 
    } 
    fmt.Println("}") 
} 

사용법 :

위해 도구를 컴파일하고 실행하면 이동을 설치하는 방법에 대한 지침을 찾을 수있는 곳 http://golang.org로 이동, 외부 라이브러리를 설치하고 컴파일에서

Usage of qrarray.exe: 
    -level=0: Recovery level. 0 is lowest, 3 is highest 
    -url="": Url to encode 
+0

투표가 다운 된 경우 답이 잘못되었음을 언급하십시오. OP가이를 수행하려고 시도 할 때 반드시 작동하기 때문에 답하십시오. – ANisus