kpic

package
v0.0.0-...-a6070cc Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 7, 2025 License: GPL-3.0 Imports: 18 Imported by: 0

README

stdlib5.kpic [win & linux] : 데이터 사진화.

<python>
class toolbox
    func setmold(str path, int row, int col)
    # 인코딩 시 사용할 사진을 설정합니다. path로 빈 문자열을 전달하면 picdt.kpic5 기본 사진이 사용됩니다.
    # row, col은 인코딩 결과물의 가로, 세로 크기이며 둘 중 하나라도 -1일 경우 사진 크기 그대로 설정됩니다.
    # row, col 값은 모두 4의 배수여야 합니다.
    func detect() -> (str name, int num, str style)
    # target 폴더 안의 항목에서 kpic 사진들을 감지해 정보를 추출합니다.
    # target 설정 후 사용하세요.
    func pack(int zmode) -> (str name, int num)
    # 데이터 파일을 사진으로 인코딩합니다. zmode는 파일 1 바이트당 대응 픽셀 바이트 수 입니다. (2 or 4)
    # setmold 함수를 먼저 사용한 상태여야 합니다. target, export, style 설정 후에 사용하세요.
    func unpack(str name, int num)
    # 사진을 데이터 파일로 디코딩합니다.
    # target, export, style 설정 후에 사용하세요.
    func restore(str[] files, int zmode) -> (str name, int maxnum)
    # 사진의 이름을 내부 데이터로부터 추출해 복구합니다.
    # style 설정 후에 사용하세요.

    .target str # 읽기 대상이 되는 폴더/파일 경로.
    .export str # 쓰기 대상이 되는 폴더/파일 경로.
    .style str # 사진 형식. "webp", "png", "bmp" 지원.
    .proc float # 진행도 변수. (-1.0 : 시작 전, 0.0 ~ 1.0 : 작업 중, 2.0 : 완료)

<go-exp>
func Initpic(str path, int row, int col) -> (toolbox, error)
# 사진 경로를 설정한 toolbox 구조체를 반환합니다. path로 빈 문자열을 전달하면 picdt.kpic5 기본 사진이 사용됩니다.
# row, col은 인코딩 결과물의 가로, 세로 크기이며 둘 중 하나라도 -1일 경우 사진 크기 그대로 설정됩니다.
# row, col 값은 모두 4의 배수여야 합니다.
struct toolbox
    func Detect() -> (str name, int num, str style)
    # Target 폴더 안의 항목에서 kpic 사진들을 감지해 정보를 추출합니다.
    # Target 설정 후 사용하세요.
    func Pack(int zmode) -> (str name, int num)
    # 데이터 파일을 사진으로 인코딩합니다. zmode는 파일 1 바이트당 대응 픽셀 바이트 수 입니다. (2 or 4)
    # Target, Export, Style 설정 후에 사용하세요.
    func Unpack(str name, int num)
    # 사진을 데이터 파일로 디코딩합니다.
    # Target, Export, Style 설정 후에 사용하세요.
    func Restore(str[] files, int zmode) -> (str name, int maxnum)
    # 사진의 이름을 내부 데이터로부터 추출해 복구합니다.
    # Style 설정 후에 사용하세요.

    .Target str # 읽기 대상이 되는 폴더/파일 경로.
    .Export str # 쓰기 대상이 되는 폴더/파일 경로.
    .Style str # 사진 형식. "webp", "png", "bmp" 지원.
    .Proc float # 진행도 변수. (-1.0 : 시작 전, 0.0 ~ 1.0 : 작업 중, 2.0 : 완료)

! go-exp !
golang은 현재 안정적인 webp 인코더를 찾을 수 없는 관계로 experimental 버전만 제공됩니다.
webp style의 pack 진행 시 libwebp 실행파일이 필요합니다.
OS에 맞춰 cwebp 실행파일명을 지정하십시오.

!!! python VM 경고 !!!
multiprocessing 모듈 사용 시 메인 스크립트에
if __name__ == '__main__':
문구를 추가하세요.

!!! 중요 경고 !!!
- pack 함수는 출력 경로의 폴더를 자동으로 초기화합니다. 출력 폴더 내부에 데이터가 있게 하지 마세요.
- go-exp는 webp 인코딩 시 프로그램이 먼저 끝나버리면 cwebp 프로세스가 종료되어버립니다.
- 사진 크기에 맞춰 패딩 바이트가 추가되며, 파일 이름은 저장되지 않으니 kzip과 같이 운용하세요.

사진 바이트 속에 이진 데이터를 숨길 수 있습니다.
기본 원리는 사진의 픽셀 바이트에서 16으로 나눈 몫은 그대로,
나머지를 이용해 바이트를 인코딩하는 것입니다.
모드 2에서는 1바이트 인코딩에 사진 2바이트가, 모드 4에서는 사진 4바이트가 쓰입니다.
사용자 데이터는 사진 크기에 맞춰 분할되며, 각 사진 속 데이터의 첫 8 바이트는
일련번호, 현재 번호, 전체 개수입니다.
기본으로 제공되는 little.webp, standard.webp, big.webp는
모드 2의 경우 각각 1.318 MiB, 9.670 MiB, 47.461 MiB까지 저장할 수 있습니다.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Initpic

func Initpic(path string, row int, col int) (toolbox, error)

init & set mold pic, (row, col) : -1/4n

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL