Excel의 픽셀 예술

1888 단어 excelvbabgr
얼마 전에는 Excel에서 셀을 픽셀로 사용하여 이미지를 그리는 것이 재미있을 것이라고 생각했습니다.
사실 나는 애니메이션을 제작하는 것을 고려하고 있기 때문에 첫 번째 뚜렷한 문제는 Excel의 픽셀 렌더링 속도가 얼마나 빠른가?
응, 나는 320x200의 위험한 데이브here의 사진을 잡고 출발했어...
PNG 파일을 CSV로 변환하려면 this PHP tool를 사용했습니다.
VBA 코드:
'Canvas reset button
Sub Button2_Click()
    Range("A1:LH200").ColumnWidth = 0.25
    Range("A1:LH200").RowHeight = 2
    Range("A1:LH200").Interior.ColorIndex = 0
End Sub

'Draw button
Sub Button1_Click()
    DrawCSVFile
End Sub

`The draw subroutine itself
Public Sub DrawCSVFile()
    Dim FilePath As String
    FilePath = ActiveWorkbook.Path & "\title1.csv"
    Open FilePath For Input As #1

    Y = 1
    Do Until EOF(1)
        Line Input #1, LineFromFile
        LineItems = Split(LineFromFile, ",")
        For X = 1 To 320
            RGBString = LineItems(X - 1)
            R = Val("&H" & Mid(RGBString, 1, 2))
            G = Val("&H" & Mid(RGBString, 3, 2))
            B = Val("&H" & Mid(RGBString, 5, 2))
            RGBExcel = RGB(R, G, B)
            Cells(Y, X).Interior.Color = RGBExcel
        Next
        Y = Y + 1
    Loop

    Close #1
End Sub
결과:

위의 이 그림은 대략 1분이 걸려서야 그려졌다.
CSV를 한 줄씩 읽고 단일 픽셀을 그리는 속도가 매우 느립니다!
다음에는 범위 복제 방법을 시도할 생각입니다.)
도중에 나는 몇 가지 새로운 것을 배웠다.
  • 텍스트 파일을 읽을 때 VBA는 줄을 CR 또는 CRLF로 끝내기를 원한다(적어도 Windows에서).LF가 선 끝으로 인식되지 않음
  • Excel의 RGB는 실제로 BGR

    좋은 웹페이지 즐겨찾기