자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다. 
  • 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)

제가 업무의 특성상 이미지 핸들링을 참 많이 합니다.

 

특수 목적의 산업용 프린터를 개발하는 분야에서 일하기 때문이지요

 

과거 VCL에서는 이미지 핸들링에 있어서 어려운 부분이 flip/rotate등을 빠르게 처리하는 것인데요

 

이런 부분이 FMX에서는 Tbitmap상에 기본 함수로 있을 뿐만 아니라 속도가 기가 막히게 빠르더군요

 

아주 환상적인 기능이라서 매~~~~우 기뻤습니다.

 

그런데 기쁨도 잠시....

 

프린터를 구현하는데 있어서 최종적으로는 모든 이미지를 각각의 컬러 프로파일로 나누어서 1bit bitmap으로 분산하여 처리를 하는데요

 

FMX pixelformat에는 1비트 비트맵이 없네요...

 

게다가 pixelformat 자체가 readonly 속성으로 설정되어 있어서 포맷 변경이 불가능하더군요...

 

 

 

일단 제가 지지고 볶고 열심히 뒤져본 결과

 

결론은 지금은 안된다!!! 라고 생각합니다.

 

FMX에서는 이미지를 저장할때 모든 이미지가 다 기본 32bit bitmap으로 최종적으로 처리가 되더군요

 

그런데 특이점은 savetofile 함수를 안으로 안으로 계속 들어가 보면

 

Codec.SaveToFile(AFileName, Bitmap, SaveParams); 으로 연결되더군요

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

PBitmapCodecSaveParams = ^TBitmapCodecSaveParams;
  TBitmapCodecSaveParams = record
    // encode quality 0..100
    Quality: Integer;
  end;

 

class function TBitmapCodecManager.SaveToFile(const AFileName: string; const Bitmap: TBitmapSurface;
  const SaveParams: PBitmapCodecSaveParams = nil): Boolean;
var
  Codec: TCustomBitmapCodec;
  Descriptor: TBitmapCodecClassDescriptor;
begin
  Result := False;
  if Assigned(FBitmapCodecClassDescriptors) then
    for Descriptor in FBitmapCodecClassDescriptors do
      if SameText(ExtractFileExt(AFileName), Descriptor.Extension, loUserLocale) and Descriptor.CanSave then
      begin
        Codec := Descriptor.BitmapCodecClass.Create;
        try
          Result := Codec.SaveToFile(AFileName, Bitmap, SaveParams);
        finally
          Codec.Free;
        end;
      end;
end

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

 

 

그리고 SaveParams는 내부적으로 변수 자체는 존재 하는데 처리상에는 nil로 막아버리더군요

 

이것은 위에 있는 Quality라는 변수를 이용해서 pixelformat을 변경가능하도록 바탕을 만들어 둔것 같은데

 

아직 구현이 안되어 있는 느낌이랄까요?

 

 

저한테는 1bit BMP 핸들링이 절실합니다.

 

제가 하는 업무에 있어서 아주 핵심적인 부분이거든요

 

이부분이 불가능하다면 제가 하는 코딩에 FMX를 접목하는 것 자체가 불가능해지는데

 

그러기에는 FMX의 UI가 너무나도 매력적이네요

 

이런 부분 어떻게 빨리 개선이 안될까요?

번호 제목 글쓴이 날짜 조회 수
공지 [프로그래밍 강의] 2021.6~2021.12 관리자 2015.01.22 20051
공지 유용한 관련 사이트 관리자2 2014.03.20 58960
공지 본 게시판은 개발자 여러분들의 질문과 답변을 공유하는 공간입니다. 관리자 2012.01.10 102578
2999 XE5 Android 서비스 어플리케이션 개발 지원은 언제부터? [1] 김진석 2013.12.31 5491
2998 wifi scan 기능 구현 문의 godkdi 2014.01.04 7271
2997 XE5에서 안드로이드앱 개발시 MySql 데이터를 어떻게 주고 받을 수 있나요? [6] 임우식 2014.01.08 6396
2996 Quick Report를 Fast Report로 빠르게 전환하는 방법은 ? [1] 관리자 2014.01.10 6185
2995 델파이/C++ 빌더 설치시 Fast Report 컴포넌트가 설치 안되어 있는데 지원되지 않습니까 ? [1] 관리자 2014.01.10 6629
2994 Datasnap에서 dbExpress와 FireDAC 중에서 어느것을 사용해야 하는지 문의합니다. [5] cdrd 2014.01.11 6544
2993 델파이 7 에서 델파이 xe5 로 마이그레이션에 대하여 [1] 규파파 2014.01.14 6094
2992 XE5에서 만든앱을 맥북에 아이패드를 연결하여 컴파일하는데 에러가 발생합니다 [5] 임우식 2014.01.15 6668
2991 IntraWeb 사용방법 및 환경이 궁금합니다. [3] 궁금이 2014.01.16 5013
» FMX에서 1bit 이미지 핸들링이 가능할까요? [2] 뎅혀니 2014.01.18 5675
2989 XE5에서 어떤 레포팅 툴이 지원되나요? [2] Humphery 2014.01.21 4707
2988 XE5 질문입니다. [2] 가을이다 2014.01.22 5234
2987 XE에서 개발된 DataSnap 프로젝트를 XE2 이상으로 마이그레이션 시 EIPAbstractError 오류 발생 시 대처방안 [1] file Humphery 2014.01.29 4908
2986 Firemonkey xe5 update 2 - C++ builder [1] 필요무 2014.02.04 4478
2985 빌더 XE4 리모트 디버거 사용시 에러문제 [1] godson2 2014.02.07 3715
2984 안드로이드 버전업 문제 로 문의 드립니다. [7] lilix 2014.02.11 4573
2983 델파이 xe4 세션 관련 문의입니다. [1] file 좋은사람 2014.02.12 3819
2982 Android GCM Service 구현시 문제 [1] Feelple(고재철) 2014.02.14 6387
2981 Fire DAC에서 Tibero DB를 ODBC 사용하여 연결 가능한가요? [1] 잭플러스 2014.02.21 6711
2980 프로세스만 뜨고 애플리케이션이 나타나지 않는 현상 file JP 2014.02.24 3034