MIT ๋ผ์ด์ผ์ค์ ๋ฐ๋ผ
ํน์ง :
- ํ์ฌ ์ข ์์ฑ(์ฝ๋ฑ ์ ์ธ) ์์ด C๋ก ์์ฑ๋ ๊ฐ๋จํ๊ณ ์ปดํฉํธํ๋ฉฐ ๋น ๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค.
- ๊ฐ๋จํ๊ณ ์ดํดํ๊ธฐ ์ฌ์ฐ๋ฉฐ ๋์์ ๋ชจ๋ ์๊ตฌ์ ๋ง๋ ๊ฐ๋ ฅํ API์ ๋๋ค.
- C++์ฉ ๋ฐ์ธ๋ฉ;
- ์ด๋ฏธ์ง ํ์์ ๋์ ์ผ๋ก ๋ก๋๋๋ ์ฝ๋ฑ์์ ์ง์๋ฉ๋๋ค.
- ํ์ผ, ๋ฉ๋ชจ๋ฆฌ ๋๋ ์์ฒด ๋ฐ์ดํฐ ์์ค์์ ์ด๋ฏธ์ง๋ฅผ ์ฝ๊ณ ์๋๋ค.
- ํ์ผ ํ์ฅ์ ๋๋ ๋ค์์ ๊ธฐ์ค์ผ๋ก ์ด๋ฏธ์ง ์ ํ ๊ฒฐ์
๋งค์ง๋๋ฒ ; - ํ์ฌ ์ง์๋๋ ํ์:
png (์ฝ๊ธฐ, Windows์๋ง ํด๋น), JPEG(์ฝ๊ธฐ, ์ฐ๊ธฐ) PNG(์ฝ๊ธฐ, ์ฐ๊ธฐ).
์๋ก์ด ํ์์ ์ถ๊ฐํ๋ ์์ ์ด ์งํ ์ค์ ๋๋ค. KSquirrel-libs๋ ์ด๋ค ๋ฐฉ์์ผ๋ก๋ ์ฝ 60๊ฐ์ง ํ์์ ์ง์ํ๋ฉฐ, ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ ํ์์ด ์ฒซ ๋ฒ์งธ์ ๋๋ค. - ์ฝ๊ธฐ ์์ ์ ํญ์ RGB ๋ฐ RGBA ํ์์ผ๋ก ํฝ์ ์ ์ถ๋ ฅํ ์ ์์ต๋๋ค.
- ์ผ๋ถ ์ฝ๋ฑ์ ํจ์ฌ ๋ ํฐ ํ์ ๋ชฉ๋ก์ผ๋ก ํฝ์ ์ ์ถ๋ ฅํ ์ ์์ต๋๋ค.
- ๋๋ถ๋ถ์ ์ฝ๋ฑ์ SOURCE ํฝ์ ์ ์ถ๋ ฅํ ์๋ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ด๋ CMYK ๋๋ YCCK ์ด๋ฏธ์ง์์ ์ ์ฒด ์ ๋ณด๋ฅผ ์ป์ผ๋ ค๋ ์ฌ์ฉ์์๊ฒ ์ ์ฉํฉ๋๋ค.
- ICC ํ๋กํ ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ
- C, Qt, SDL์ ์;
- ์ง์๋๋ ํ๋ซํผ:
Windows(์ค์น ํ๋ก๊ทธ๋จ), macOS(brew) ๋ฐ Linux(Debian).
SAIL์ด ์ ๊ณตํ์ง ์๋ ๊ฒ:
- ์ด๋ฏธ์ง ํธ์ง;
- ๊ธฐ๋ณธ ์ฝ๋ฑ(libjpeg ๋ฑ)์์ ์ ๊ณตํ๋ ๊ธฐ๋ฅ ์ด์ธ์ ์ ๊ณต๊ฐ ๋ณํ ๊ธฐ๋ฅ
- ์์ ๊ด๋ฆฌ ๊ธฐ๋ฅ(ICC ํ๋กํ์ผ ์ฌ์ฉ ๋ฑ)
C์์ ๋์ฝ๋ฉํ๋ ๊ฐ์ฅ ๊ฐ๋จํ ์:
๊ตฌ์กฐ์ฒด ํญํด_์ปจํ ์คํธ *์ปจํ ์คํธ;
SAIL_TRY(sail_init(&context));
๊ตฌ์กฐ์ฒด ํญํด_์ด๋ฏธ์ง *์ด๋ฏธ์ง;
๋ถํธ ์๋ ๋ฌธ์ *image_pixels;
SAIL_TRY(sail_read(๊ฒฝ๋ก,
๋ฌธ๋งฅ,
&์์,
(void **)&image_pixels));
/*
* ์ฌ๊ธฐ์์๋ ์์ ๋ ํฝ์
์ ์ฒ๋ฆฌํฉ๋๋ค.
* ์ด๋ ๊ฒ ํ๋ ค๋ฉด ์ด๋ฏธ์ง->๋๋น, ์ด๋ฏธ์ง->๋์ด, ์ด๋ฏธ์ง->bytes_per_line,
* ๋ฐ ์ด๋ฏธ์ง->pixel_format.
*/
/* ์ ๋ฆฌ */
๋ฌด๋ฃ(์ด๋ฏธ์ง_ํฝ์
);
ail_destroy_image(์ด๋ฏธ์ง);
API ๋ ๋ฒจ์ ๋ํ ๊ฐ๋ตํ ์ค๋ช :
- ์ด๋ณด์: "์ด JPEG๋ฅผ ๋ค์ด๋ก๋ํ๊ณ ์ถ์ด์."
- ๊ณ ๊ธ: "์ด ์ ๋๋ฉ์ด์ GIF๋ฅผ ๋ฉ๋ชจ๋ฆฌ์์ ๋ก๋ํ๊ณ ์ถ์ต๋๋ค."
- ์ฌํด ๋ค์ด๋ฒ: "์ด ์ ๋๋ฉ์ด์ GIF๋ฅผ ๋ฉ๋ชจ๋ฆฌ์์ ๋ก๋ํ๊ณ ๋ด๊ฐ ์ ํํ ์ฝ๋ฑ๊ณผ ํฝ์ ์ถ๋ ฅ์ ์์ ํ ์ ์ดํ๊ณ ์ถ์ต๋๋ค."
- ํ ํฌ๋์ปฌ ๋ค์ด๋ฒ: โ์์ ๋ชจ๋ ๊ฒ๊ณผ ๋๋ง์ ๋ฐ์ดํฐ ์์ค๋ฅผ ์ํฉ๋๋คโ
๊ฐ์ ์ง์ญ์ ์ง์ ์ ์ธ ๊ฒฝ์์:
- ํ๋ฆฌ์ด๋ฏธ์ง
- ์ ๋ง
- SDL_์ด๋ฏธ์ง
- WIC
- imlib2
- ๋ถ์คํธ.๊ธธ
- gdk-pixbuf
๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์ฐจ์ด์ :
- ์ด๋ฏธ์ง, ํ๋ ํธ ๋ฑ ์์ ์ํฐํฐ๊ฐ ํฌํจ๋ ํด๋จผ API
- ๋๋ถ๋ถ์ ์ฝ๋ฑ์ RGB/RGBA ํฝ์ ์ด์์ ์ถ๋ ฅํ ์ ์์ต๋๋ค.
- ๋๋ถ๋ถ์ ์ฝ๋ฑ์ RGB๋ก ๋ณํํ์ง ์๊ณ ๋ ์๋ณธ ํฝ์ ์ ์ถ๋ ฅํ ์ ์์ต๋๋ค.
- ๋ชจ๋ ์ธ์ด๋ก ์ฝ๋ฑ์ ์์ฑํ ์ ์์ผ๋ฉฐ ์ ์ฒด ํ๋ก์ ํธ๋ฅผ ๋ค์ ์ปดํ์ผํ์ง ์๊ณ ๋ ์ฝ๋ฑ์ ์ถ๊ฐ/์ ๊ฑฐํ ์ ์์ต๋๋ค.
- ์๋ณธ ์ด๋ฏธ์ง์ ๋ํ ์ ๋ณด๋ฅผ ๋ณด์กดํฉ๋๋ค.
- 'ํ๋ก๋น(Probing)'์ ํฝ์ ๋ฐ์ดํฐ๋ฅผ ๋์ฝ๋ฉํ์ง ์๊ณ ์์์ ๋ํ ์ ๋ณด๋ฅผ ์ป๋ ๊ณผ์ ์ด๋ค.
- ํฌ๊ธฐ์ ์๋.
์ถ์ฒ : opennet.ru