posted by 쑥갓 2005.05.15 12:41

파일 형태

fopen의 두 번째 인수 mode에는 오픈 모드외에도 파일의 형태를 지정하는 플래그를 추가로 지정할 수 있다. 열고자 하는 파일이 텍스트 파일이면 t를 붙이고 이진 파일이면 b를 붙인다. 파일 형태에 아무런 지정이 없으면 전역 변수 _fnmode의 값이 사용된다. 이진 파일은 아무런 변환없이 읽혀지지만 텍스트 파일 모드로 파일을 열면 다음 두 가지 변환을 한다.
① 개행 코드를 의미하는 CR/LF 조합은 LF로 변환되어 읽혀지며 LF를 기록하면 CR/LF가 출력된다. 이런 변환을 해 주는 이유는 C 문자열 출력 함수들은 개행을 위해 확장열 LF(\n)를 사용하기 때문이다.
② 파일의 끝을 나타내는 Ctrl+Z(0x1A)는 EOF(-1)로 변환되어 읽혀진다. 단 "a+" 모드로 열었을 때는 끝부분에 데이터를 추가할 수 있도록 Ctrl+Z를 제거한다.
오픈 모드와 파일 형태가 mode 인수에 같이 기록되는데 오픈 모드가 먼저 오고 파일 형태가 뒤에 오는 형식으로 써야 한다. 단, +문자는 파일 형태 다음에 와도 상관없다. 다음이 mode인수의 예인데 문자열이므로 반드시 겹따옴표를 싸 주어야 한다.
"rt" : 텍스트 파일을 읽기 전용으로 연다.
"wb" : 이진 파일을 쓰기 전용으로 연다.
"r+b" : 이진 파일을 읽기, 쓰기 가능하도록 연다. "rb+"로 쓸 수도 있다.
이외에 mode 인수에는 캐시를 관리하는 방법과 임시 파일 생성에 대한 몇가지 플래그를 더 지정할 수 있다.
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
posted by 쑥갓 2005.03.16 12:22

출처 : http://blog.naver.com/sharbong/100011099628


오랜만에 개발 관련 글을 쓰는 것 같다... 그동안 디자인 관련 글들만 써왔는데.. 이번엔 본업인 플밍 관련 글을 쓸까 한다.. 사실 디자인적인 얘기는 비전문가라 해도 쉽게 이해할 수 있지만 프로그래밍은 그러지를 못해서 잘 쓰지 않기로 했지만, 이번에는 그다지 어려운 것도 아니고, 포토샵을 다루는 사람이라면 재미있게 볼 수 도 있을 것 같아 쓰게 되었다.

이 글은 DirectX로 포토샵 블랜딩 모드를 구현하는 것을 보여주며, 본인도 정리하는 입장으로 쓰고 있는지라.. 약간 모자를 수도 있다. 그럴때는 과감히 리플~! 달기 바란다.  % --> .

PhotoShop BlendMode with DX
DirectX로 포토샵 블랜딩 모드 구현하기
사실 DX로 포토샵의 모든 블랜딩 모드를 구현할 수는 없으며, 일부만이지만 실무에서 자주 쓰는 블랜딩 모드를 구현하게 될 것이다. 블랜딩 모드를 설명하기 위해 2가지 이미지를 준비했다.

hDziHcy.jpg (200×150)

ZHwybDf.jpg (200×150)

Background ImageLayer Image
Multiply
설명(Description):
대상색과 원본색을 곱한다.

수식(Formula):
Result = SC * DC

DX 블랜딩 모드(DX Blending Mode):
SetRenderState( D3DRS_BLENDOP, D3DBLENDOP_ADD );
SetRenderState( D3DRS_SRCBLEND, D3DBLEND_ZERO );
SetRenderState( D3DRS_DESTBLEND, D3DBLEND_SRCCOLOR );

uMtUy4d.jpg (200×150)

Screen
설명(Description):
Mulitiply 모드랑 반대되는 모드가 바로 Screen 모드다. 원본, 대상 색의 반전시킨다음 곱한다.

수식(Formula):
Result = 1 - ( 1 - SC ) * ( 1 - DC )

DX 블랜딩 모드(DX Blending Mode):
SetRenderState( D3DRS_BLENDOP, D3DBLENDOP_ADD );
SetRenderState( D3DRS_SRCBLEND, D3DBLEND_INVDESTCOLOR );
SetRenderState( D3DRS_DESTBLEND, D3DBLEND_ONE );

RV9yM7z.jpg (200×150)

Darken
설명(Description):
원본, 대상 색을 비교해 어두운 색만 표현한다.

수식(Formula):
Result = MIN( SC, DC )

DX 블랜딩 모드(DX Blending Mode):

SetRenderState( D3DRS_BLENDOP, D3DBLENDOP_MIN );
SetRenderState( D3DRS_SRCBLEND, D3DBLEND_ONE );
SetRenderState( D3DRS_DESTBLEND, D3DBLEND_ONE );

CKcvRoG.jpg (200×150)

Lighten
설명(Description):
원본, 대상 색을 비교해 밝은 색만 표현한다.

수식(Formula):
Result = MAX( SC, DC )

DX 블랜딩 모드(DX Blending Mode):
SetRenderState( D3DRS_BLENDOP, D3DBLENDOP_MAX );
SetRenderState( D3DRS_SRCBLEND, D3DBLEND_ONE );
SetRenderState( D3DRS_DESTBLEND, D3DBLEND_ONE );

JyaTqum.jpg (200×150)

Additive
설명(Description):
원본, 대상 색을 더한다. 기본적인 블랜딩 모드다.

수식(Formula):
Result = SC + DC

DX 블랜딩 모드(DX Blending Mode):
SetRenderState( D3DRS_BLENDOP, D3DBLENDOP_ADD );
SetRenderState( D3DRS_SRCBLEND, D3DBLEND_ONE );
SetRenderState( D3DRS_DESTBLEND, D3DBLEND_ONE );

TaIbbJe.jpg (200×150)


신고
크리에이티브 커먼즈 라이선스
Creative Commons License

티스토리 툴바