원본 이미지와 비교할 이미지의 빨간색 채널을 생성 할 수있는 특정 기능이 있습니까?적색 채널을 추출하는 SDL 라이브러리
답변
surface->pixels
으로 픽셀 데이터에 액세스하고 surface->format->Rmask
으로 그림 Rmask에 액세스 할 수 있습니다. 데이터
SDL_Surface* t;
//Code
Uint32* pixels = (Uint32*)t->pixels;
int x = 10 ,y = 10; //For pixel at 10, 10
Uint32* MyPixel = pixels + ((y-1) + t->w) + x;
Uint32 RedOnly = *MyPixel & t->format->Rmask;
참고 :이 바보 같은 실수와 y-y를 하나해야 잊어 버렸습니다. 이런
Uint32* MyPixel = pixels + ((y-1) + t->w) + x
방법 :
UINT32 픽셀 데이터의 배열의 첫 번째 요소를 가리키는 포인터이다. (32 비트 정수). 내가 픽셀 +1을하면 도로 아래로 1 Uint32 크기의 메모리가 보입니다. 2D 좌표계에서 픽셀 10,10을 원한다면이를 1 차원 선형 값으로 변환해야합니다.
1,2,3,4,5
6,7,8,9,10
그래서
((y-1) * t->w) + x
는 lineaer 형태의 픽셀의 정수 값을 얻을 것이다 : 그것은 간다 있도록 SDL_Surface 픽셀은 수평 및 선형이다. 예를 들어 위의 경우 2,2와 같은 픽셀의 경우 너비는 5이고 은
7
이됩니다. 그런 다음 픽셀을 가져 와서 배열의 원점에서 Uint32 (7 * 32 비트) 7 정수의 주소 인 7 (
pixels+7
)만큼 오프셋합니다.
Uint32 RedOnly = *MyPixel & t->format->Rmask
은 다음과 같이 작동합니다. 픽셀 (0xFF41A401)에 임의의 Uint32가 있다고 가정 해 보겠습니다. 그림 형식이 ARGB라고 가정 해 보겠습니다. 즉, Rmask는 0x00FF0000입니다. 그 진에서
는 빨간색 값은 그래서 '삭제'모든 블루/그린 정보 유지, 따라서
*MyPixel = 1111 1111 0100 0001 1010 0100 0000 0001
Rmask = 0000 0000 1111 1111 0000 0000 0000 0000
//And a bitwise & operation will result in:
RedOnly = 0000 0000 0100 0001 0000 0000 0000 0000
이다.
t-> w 란 무엇입니까? 이 함수가이 경우 http://wiki.libsdl.org/SDL_CreateRGBSurface에 적합하다는 것을 알았습니까? – user2711681
t-> w는 'surface-> w'또는 표면의 픽셀 수의 너비입니다. 'surface-> h '는 높이이지만 필요하지 않습니다. '(y + t -> w) + x는 x, y 좌표를 픽셀의 선형 값으로 바꾼다. – Chemistpp
그래서 for 루프를 실행해야하지만 그 전에 w와 h 값을 적절하게 받아야합니다. 하지만 처음에는이 변수에있는 모든 픽셀을 가지고 있습니까? 그러면 여기에서 여러분이하는 것은 명확한 픽셀이 아닙니다 + (y + t -> w) + x; – user2711681
- 1. SDL 라이브러리 메모리 누수
- 2. SDL 라이브러리 PNG 지원
- 3. SDL 이미지 라이브러리 링커
- 4. SDL GUI 라이브러리?
- 5. 현재 경로/SDL 라이브러리
- 6. Makefile에 SDL 라이브러리 연결하기, C++
- 7. 베개를 사용하여 이미지에서 알파 채널을 추출하는 방법
- 8. 플롯팅 강도에 의한 적색 채널
- 9. 안드로이드 용 SDL 라이브러리 구축 방법
- 10. 디버깅 링커 오류 - SDL 정적 라이브러리
- 11. html 문자열에서 데이터를 추출하는 라이브러리
- 12. C#의 비트 맵에서 투명한 채널을 삽입/추출하는 방법은 무엇입니까?
- 13. SDL 1.2 및 SDL 2.0 호환성
- 14. SDL
- 15. , SDL
- 16. 은 적색 편이
- 17. 적색 변경 데이터 요약
- 18. 적색 변이의 변수 선언하기
- 19. 적색 변이의 증분 하중
- 20. Project Darkstar (적색 왜성)
- 21. 적색 변경 동시 처리
- 22. 적색 변이로 Upsert
- 23. 라이브러리는 SDL/sdl.h 등 필요한되는 라이브러리 내가 SDL/SDL_gfxPrimitives.h 및 SDL 리눅스 우분투/SDL.h 를 포함 다운로드해야 할
- 24. URL에서 문서 라이브러리 이름을 추출하는 jquery
- 25. 영어 텍스트에서 구문 동사를 추출하는 라이브러리
- 26. pdf에서 워드 좌표를 추출하는 라이브러리/도구
- 27. MP3 파일에서 오디오 정보를 추출하는 Java 라이브러리
- 28. HTML 페이지에서 텍스트 블록을 추출하는 Java 라이브러리
- 29. 위키 피 디아에서 데이터를 추출하는 Python 라이브러리?
- 30. 웹 페이지의 내용을 추출하는 서버 측 라이브러리
SDL은 실제로 이미지 처리 라이브러리가 아닙니다. – jrok
SDL로 무엇을 할 수 있습니까? 해당 적색 채널 또는 녹색 채널을 생성 할 수 있습니까? – user2711681