자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다. 
  • 제품설치/등록 오류 문의: 설치/등록 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 15766
공지 유용한 관련 사이트 관리자2 2014.03.20 54580
공지 본 게시판은 개발자 여러분들의 질문과 답변을 공유하는 공간입니다. 관리자 2012.01.10 97985
1119 android API file leejh 2015.12.14 118
1118 cannot resolve unit name 'Winapi. windows' file charlesseo 2015.12.15 829
1117 OPEN API 를 이용하여 개발하려고 합니다. [2] 카이로스 2015.12.12 511
1116 컴포넌트 문의 드립니다. [1] secret sue 2015.12.11 4
1115 서비스명을 알수 있나요? [1] kim 2015.12.11 109
1114 파일복사 관련 문의입니다. [1] 굿네이처스 2015.12.11 312
1113 DB Express관련입니다 [1] secret 호로록 2015.12.11 4
1112 WebBrowser에서 메모리를 줄일수 있나요? kim 2015.12.11 143
1111 release에서 Run하면 에러발생합니다. kim 2015.12.10 316
1110 ClientDataSet을 XML로 저장시 [1] 라시드 2015.10.26 372
1109 [XE8] 세로고정모드에서 가로 풀화면 만들기 [1] 가을이다 2015.12.08 559
1108 Delphi 10 Seattle 에서 DevExpress v15.1.5 버전이 설치가 되지 않습니다. [3] 도사 2015.12.08 821
1107 BindingsList 에 LinkList 를 추가하는 방법을 알고 싶습니다. [2] file 거북이 2015.12.05 152
1106 Webbrowser에서 텍스트나 html 소스를 가져오고 싶습니다. [1] 다서짱 2015.12.04 1197
1105 sns공유 기능문의 [1] 사랑남 2015.12.07 342
1104 DBX에러..긴급 답변요청합니다. [1] secret kjm 2015.12.07 9
1103 안드로이드에서 Free 가 안되는 이유가 왜인가요? [1] 거북이 2015.12.05 180
1102 [재문의]seattle 버전 ios9 "External Exception 434C4E47432B2B00" 에러 [3] 사랑남 2015.11.20 647
1101 롤리팝에서 프로그램이 구동되지 않습니다 [4] 위드유 2015.12.02 418
1100 [질문]FastReport 리소스 파일을 한글로 바꿨는데, 이 리소스를 어떻게 적용을 시키는 거죠? [2] file 바람돌이 2015.12.01 863