전체 글 79

modinfo Xml에서 md5 계산해서 파일에 올리는 프로그램

문명 5 모드는 modinfo를 루트로 가지는데 modinfo는 참조할 파일들과 함께 그 파일들의 md5 해시를 적어 둔다. https://github.com/hyuckkim/vp_kr 이거 만들면서 GitHub - hyuckkim/vp_kr Contribute to hyuckkim/vp_kr development by creating an account on GitHub. github.com 해시가 틀려도 체감되는 문제는 딱히 없는것 같긴 한데 그래도 원모드에서도 해시를 열심히 챙기니까 나도 챙겨야겠다고 생각이 들었다. 모드 만드는 프로그램에서는 아마 해시를 자동으로 바꿔 줄텐데 나는 그런거 없어서 걍 C#으로 대충 만들었다. using System.Xml; using System.Security.Cr..

카테고리 없음 2022.04.16

웹 어셈블리 이미지 처리 연습 기록 (2)

이제 나는 웹 어셈블리의 구조도 알고 러스트도 알고 타입스크립트도 알고 png 파일 생긴 모양도 안다. 신난다. 구현해야 할 기능은 웹 어셈브리 쪽에서는 2개가 남았는데, 이미지가 팔레트 이미지인지 인식하는 기능과 팔레트 정보를 수정하는 기능이다. 팔레트 확인 이미지를 받아서 팔레트를 확인하고 팔레트가 있으면 팔레트 내용을 반환하고 팔레트가 없으면 빈 배열을 반환하는 함수를 만들었다. #[wasm_bindgen] pub fn read_palette(data: Uint8ClampedArray) -> Uint8ClampedArray { let datavec = data.to_vec(); let mut i: usize = 8; if datavec[0..8] != [0x89, 0x50, 0x4E, 0x47, 0..

카테고리 없음 2022.04.09

웹 어셈블리 이미지 처리 연습 기록 (1)

https://github.com/hyuckkim/Online-ModernArt-Maker GitHub - hyuckkim/Online-ModernArt-Maker Contribute to hyuckkim/Online-ModernArt-Maker development by creating an account on GitHub. github.com 사실 온라인도 아니고 모던아트도 아니고 메이커도 아니지만 이름을 뭘로 해야 할지 모르겠어서 그냥 이렇게 적음. 사이트는 대충 로컬 이미지를 imagequant로 팔레트 png 이미지로 바꾸는 기능 / 각 팔레트 바꾸는 기능 이렇게 2개. libimagequant (LIQ) — Image Quantization Library (pngquant.org) libima..

카테고리 없음 2022.04.03

wasm-pack을 ES 모듈에서 사용할 때 문제

wasm-pack build --target web 이걸로 웹 어셈블리 코드를 만들면서 생긴 문제이다. wasm-pack은 친절하게도 .wasm 파일과 함께 wasm 파일의 함수를 사용할 수 있는 wasm.js와 wasm.d.ts를 생성했다. 내가 만든 함수들은 export function이 되어 있어서 파일 전체 import만 해주면 사용할 수 있게 되는것이다. import * as rust from "./pkg/hello_wasm.js 이 명령 하나로 사용할 수 있었다. 타입 체킹을 깐깐하게 하는 타입스크립트/러스트 환경 모두에서 문제가 없어서 당연히 잘 될 줄 알았고, static 서버가 될 테니까 깃허브 페이지에도 올릴 수 있겠지? 하고 올렸다. 그리고 함수를 사용하는 시점에 자바스크립트 오류가 ..

카테고리 없음 2022.02.28

인천색 RGB 코드 모음

앞으로 뭘 만들 때 인천광역시 색채디자인 가이드를 따르려고 정리해봤다. NCS 표색계가 쓰여 있는 걸 w3schools 사이트에서 변환했다. 기본 색 10개는 rgb 코드도 따로 써 있는데 그거랑도 다른 걸로 봐서 그냥 참고용으로만 써야 될 듯. 인천 도시경관 아카이브 (incheon.go.kr) 인천 도시경관 아카이브 imap.incheon.go.kr Color Converter (w3schools.com) Color Converter W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaS..

카테고리 없음 2022.02.22

MDN의 'Rust를 WebAssembly로 컴파일하기' 를 따라해 봤다.

웹 어셈블리를 써보자! 하고 간단하게 시작해 봤다. Rust를 WebAssembly로 컴파일하기 - 웹어셈블리 | MDN (mozilla.org) Rust를 WebAssembly로 컴파일하기 - 웹어셈블리 | MDN 여러분이 Rust 코드를 가지고 있다면 WebAssembly로 컴파일 할 수 있습니다. 이 튜토리얼은 Rust 프로젝트를 컴파일하여 기존 웹 애플리케이션에서 사용하기 위해 알아야 할 모든 것을 설명합니다. developer.mozilla.org 이글이다. 대충 러스트로 패키지를 만들어 npm에 올리고 그걸 받아서 사용하는 시나리오다. wasm-pack에서 문제가 생겼다. 대충 구글링 결과 최신버전에서 펄 언어가 윈도우용 분기를 안만들어서 생긴 일 같다. (모름) rust - can't ins..

카테고리 없음 2022.02.19

vp 번역 업데이트 과정 정리 (자뻑용)

우선 구버전 모드 폴더와 신버전 모드 폴더를 준비한다. 디렉터리 안의 어떤 내용이 없는 파일들 지우기 (tistory.com) 디렉터리 안의 어떤 내용이 없는 파일들 지우기 라는 기능이 필요해져서 (Language_en_US가 있는 언어 지원용 파일만 남기고 나머지 다 지우려고) 파워쉘로 어떻게 해보려고 찾아보고 있었는데... 아! 나 C# 할 줄 알았지! C#로 간단하게 만들었습니 hyuckkim.tistory.com 이걸로 번역에 필요한 파일들 빼고 다 지운다. Dotnet 6.0이 있어야 실행되는 건 호환성이 너무 구린 거 같아서 러스트로 다시 짰다. use std::io; use std::io::BufRead; use std::fs; fn main() { let path = get_cutstr("..

카테고리 없음 2021.11.09

디렉터리 안의 어떤 내용이 없는 파일들 지우기

라는 기능이 필요해져서 (Language_en_US가 있는 언어 지원용 파일만 남기고 나머지 다 지우려고) 파워쉘로 어떻게 해보려고 찾아보고 있었는데... 아! 나 C# 할 줄 알았지! C#로 간단하게 만들었습니다. using System; using System.IO; using System.Linq; using System.Collections.Generic; namespace AnyRemover { public class Program { static string path = string.Empty; static string query = string.Empty; public static void Main() { Console.Write("Input path : "); var newpath = Co..

카테고리 없음 2021.10.24

문자열을 바이트별로 처리할 때 주의사항

상황 -> lua의 그래픽 라이브러리인 LÖVE에서 사용할 간단한 문자열 parser를 만들고 있었다. 각 줄마다 제목과 여러 개의 key-value 값을 가지는 text가 있는 txt 파일이었다. 각 줄의 마지막 value 값을 문자열로 사용할 때마다 예상치 못한 상황이 발생했다. 원인 -> 라인 넘김 처리를 txt == "\n" 로 하고 있었다. 윈도우 시스템에서 라인을 넘기면 아스키 코드로 CR LF가 생긴다. 이 둘 모두에 대해 처리를 해줘야 했다. 내가 아무 생각 없이 만든 파서는 CR만 인식하고 LF는 저장해 뒀다가 입출력 자리를 맨 앞으로 당기는데 사용된다. 입출력 자리를 맨 앞으로 당겨놨기 때문에 문자열 출력은 이상해졌다. 해결 -> 라인 넘김 처리를 txt == "\n" or string..

카테고리 없음 2021.10.12