C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 팁&트릭
C++Builder Programming Tip&Tricks
[692] [ImageProcessing] 이미지 (뒤집기)반전 - 펌
장성호 [nasilso] 8409 읽음    2007-07-27 16:26
[펌+]
http://www.swissdelphicenter.ch/torry/showcode.php?id=2329

이미지 반전은?

뭐 그냥 색상정보값을
0xFF  -->  0x00 ; 0xF0  -- > 0x0F  0x0F  -->  0xF0 ...
뭐 이런식으로 바꾸는것이다.
이미지 위치가 바뀌는것이 아니라 색상이 반전되는것이다

void __fastcall TForm1::InvertImage()//색상뒤집기 ..
{ 
    //원본이미지 Image1 , 반전이미지 뿌리는곳 Image5
    Image5->Width=Image1->Picture->Bitmap->Width;
    Image5->Height=Image1->Picture->Bitmap->Height;
    Image5->Picture->Bitmap->Assign(Image1->Picture->Bitmap);

    unsigned char *pt1=(unsigned char *)Image5->Picture->Bitmap->ScanLine[Image5->Height-1];
    unsigned char *pt2=(unsigned char *)Image5->Picture->Bitmap->ScanLine[Image5->Height-2];

    int pt_wid=pt2-pt1;                                                              // 한 라인의 Byte수를 계산
    int roof = pt_wid * Image5->Picture->Bitmap->Height ;      // 전체 Data Size 계산
    for(int i=0;i


아랫쪽에 Image처리 글들은 PixelFormat 을 모두  pf32bit 로 바꿔서 처리했다.( 편하게 하려구)

하지만 이번에는 PixelFormat 을 바꾸지 않고
Graphics::TBitmap 에서 처리할수 있는 모든 PixelFormat  에 대해서 처리 가능하게 했다.


테스트는 좀 했는데, 충분했는지 모르겠네요
좋은 아이디어와 조언 부탁드립니다.
그럼

+ -

관련 글 리스트
692 [ImageProcessing] 이미지 (뒤집기)반전 - 펌 장성호 8409 2007/07/27
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.