자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Firemonkey 델파이XE3 - firemonkey2에서의 Bitmap Pixel 조작은 어떻게 해야 하나요?
2012.10.09 22:50
기존 xe2의 파이어몽키에서는
procedure TForm1.Button1Click(Sender: TObject);
var
x, y: Integer;
begin
for x := 0 to Image1.Bitmap.Width - 1 do
begin
for y := 0 to Image1.Bitmap.Height - 1 do
begin
Image1.Bitmap.Pixels[x, y] := tAlphaColorRec.Blue;
end;
end;
Image1.Bitmap.BitmapChanged;
end;
이런 형식으로 Image의 비트맵을 픽셀단위로 조작하는 것이 가능했었습니다. 이 기능으로 이미지 에디팅 처리를 해왔는데, XE3의 파이어몽키2에서는 픽셀에 관련한 내용들이 모두 사라졌네요.
어떤 방법으로 픽셀을 처리할 수 있는지 방법을 알려주세요.
이 문제 때문에 델파이 XE3를 구매하고도 제대로 사용을 못하고 있습니다.
번호 제목 글쓴이 날짜 조회 수
공지
[프로그래밍 강의] 2021.6~2021.12
관리자 2015.01.22 39915
공지
유용한 관련 사이트
관리자2 2014.03.20 79440
12
파이어몽키로 안드로이드 시스템상에서 터치 이벤트 발생이 가능한가요?
[2] 유성 2021.03.24 491
11
[문의]프로그램 메모리릭 오류 체크
[1] 공수래 2021.03.25 487
10
안드로이드 APK확장파일 생성 방법 문의 드립니다.
그니 2021.03.30 556
9
TGridPanelLayout 아이템 삭제
[3] 공수래 2021.04.01 547
8
10.4.2 코드인사이트 기능에 대해
[1]
delphiman 2021.04.16 636
7
IOS 새로고침 드래그시 이슈
delphiman 2021.05.06 502
6
통화목록 관련
[1] 100jk 2021.05.14 7953
5
ApeSuite 사용법
SSI 2021.06.08 539
4
Apple healthkit 사용법에 대해 도움 요청 드립니다.
[2] 지병철 2021.06.18 801
3
ScrollBox안에 Edit 가상키보드 문제..
[4] 운직 2021.07.14 929
2
[질문] FMX화면에서 싸인이 가능한가요?
[2] 화현 2021.07.22 592
1
IOS 화면 가로 고정으로 배포 오류 문의
[4] 2an 2021.08.04 639
Firemonkey 델파이XE3 - firemonkey2에서의 Bitmap Pixel 조작은 어떻게 해야 하나요?
2012.10.09 22:50
기존 xe2의 파이어몽키에서는
procedure TForm1.Button1Click(Sender: TObject);
var
x, y: Integer;
begin
for x := 0 to Image1.Bitmap.Width - 1 do
begin
for y := 0 to Image1.Bitmap.Height - 1 do
begin
Image1.Bitmap.Pixels[x, y] := tAlphaColorRec.Blue;
end;
end;
Image1.Bitmap.BitmapChanged;
end;
이런 형식으로 Image의 비트맵을 픽셀단위로 조작하는 것이 가능했었습니다. 이 기능으로 이미지 에디팅 처리를 해왔는데, XE3의 파이어몽키2에서는 픽셀에 관련한 내용들이 모두 사라졌네요.
어떤 방법으로 픽셀을 처리할 수 있는지 방법을 알려주세요.
이 문제 때문에 델파이 XE3를 구매하고도 제대로 사용을 못하고 있습니다.
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
공지 | [프로그래밍 강의] 2021.6~2021.12 | 관리자 | 2015.01.22 | 39915 |
공지 | 유용한 관련 사이트 | 관리자2 | 2014.03.20 | 79440 |
12 | 파이어몽키로 안드로이드 시스템상에서 터치 이벤트 발생이 가능한가요? [2] | 유성 | 2021.03.24 | 491 |
11 | [문의]프로그램 메모리릭 오류 체크 [1] | 공수래 | 2021.03.25 | 487 |
10 | 안드로이드 APK확장파일 생성 방법 문의 드립니다. | 그니 | 2021.03.30 | 556 |
9 | TGridPanelLayout 아이템 삭제 [3] | 공수래 | 2021.04.01 | 547 |
8 |
10.4.2 코드인사이트 기능에 대해
[1] ![]() | delphiman | 2021.04.16 | 636 |
7 | IOS 새로고침 드래그시 이슈 | delphiman | 2021.05.06 | 502 |
6 | 통화목록 관련 [1] | 100jk | 2021.05.14 | 7953 |
5 | ApeSuite 사용법 | SSI | 2021.06.08 | 539 |
4 | Apple healthkit 사용법에 대해 도움 요청 드립니다. [2] | 지병철 | 2021.06.18 | 801 |
3 | ScrollBox안에 Edit 가상키보드 문제.. [4] | 운직 | 2021.07.14 | 929 |
2 | [질문] FMX화면에서 싸인이 가능한가요? [2] | 화현 | 2021.07.22 | 592 |
1 | IOS 화면 가로 고정으로 배포 오류 문의 [4] | 2an | 2021.08.04 | 639 |
아무도 답을 안주시네요...;;; 이래서야 앞으로 개발할때 필요한 내용들을 어떻게 해결하나 걱정되기도 합니다.
답을 찾았습니다. 이렇게 바꾸면 됩니다.
procedure TForm1.Button1Click(Sender: TObject);
var
x, y: Integer;
Map: TBitmapData;
begin
Image1.Bitmap.Canvas.BeginScene();
Image1.Bitmap.Map(TMapAccess.maReadWrite, Map);
for x := 0 to Image1.Bitmap.Width-1 do
begin
for y := 0 to Image1.Bitmap.Height-1 do
begin
Map.SetPixel(x, y, TAlphaColorRec.Blue);
end;
end;
Image1.Bitmap.Unmap(Map);
Image1.Bitmap.Canvas.EndScene;
end;
보시는 것 처럼, 기존에 사용하던 것과는 좀 많이 달라졌습니다.
별도로 TBitmapData 객체를 하나 가지고 있어야 하고, Bitmap에서 Map이라는 메쏘드를 이용해서 TBitmapData 객체에 쓰고, 그 비트맵데이터의 픽셀 조작 메소드로 비트맵을 조작한 다음 Bitmap.unmap() 매쏘드로 다시 비트맵에 써주는 식으로 동작하는 거죠.
다른 부분은 편리해 졌는데 비트맵 조작하는 부분은 왜이리 복잡해졌는지 모르겠습니다...ㅡㅡ;;