본문 바로가기
IT/델파이

[Delphi] 워터마크 표시와 이미지 줄이기

by 불멸남생 2023. 11. 10.

* 목차  *

1. 개요

2. 상세내용

3. 소스 설명

4. 프로그램실행 시 동작화면

5. 변환된 이미지 모습

 

1. 개요

델파이를 이용한 이미지 크기조정과 워터마크 표시.

2. 상세내용

글을 올리다 보니 사진을 올리 때가 있다. 그럴 때 이미지 크기도 변경해야 하고 워터마트도 추가해야 했다. 

Tstory 에서 워터마크 표시 하는 부분이 있는데 맘에 들지 않아 간단하게 만들어 보았다.

반응형

3. 소스 설명

Uses 추가

Vcl.GraphUtil, Vcl.ExtCtrls

 

1. 워터마크    소스안에 설명을 달아 놓았다. 자기가 원하는 데로 수정해서 올리면 된다.

Mkxmax := Trunc(Image321.Width / Mklen ) // 이미지 에서 표시라 가로 개수
Mkymax := Trunc(Image321.Height / 160) ;     // 이미지에서  표시할 세로 갯수
..
  for i := 0 to mkxmax do
  begin
    for j := 1 to mkymax do begin
    // 이미지의 중심에서 위쪽과 아래 쪽에 텍스트 표시
    // RenderTextW는 TImage32있음. (TImage 없음.)
    //  Image321.Bitmap.RenderTextW(가로위치 ,세로위치, '워커마스 표시할내용' ,'나도모르겠음.','표시할색')
    // 표시할색 에서 앞 두자리는 투명도를 말함. 'FF'로갈수록 진해지고, '00'으로갈수록 투명해짐.
      Image321.Bitmap.RenderTextW(20+(i*150) - ((Mklen * 28) *j) , 20+i*160,MKString,1,$60000000);
      Image321.Bitmap.RenderTextW(20+(i*150) + ((Mklen * 28) *j) , 20+i*160,MKString,1,$60000000);
    end;
   // 이미지의 가운데 표시
    Image321.Bitmap.RenderTextW(20+(i*150)  , 20+i*160,MKString,1,$60000000);
  end;
...

 

반응형

2. 이미지 크기 조절

    소스안에 설명을 달아 놓았다. 자기가 원하는 데로 수정해서 올리면 된다.

    (주의사항 이미지에 텍스트를 입히는 것 있는데 그건 GR32에서만 가능했다.)

...
   // 변환할 저장소
    image := Timage.Create(nil);
   // 원본 이미지 저장소
   imagesrc := Timage.Create(nil);
   // 저장할 이미지 저장소
   imagedesc := Timage32.Create(nil);
   // gr32의 Timage32를 사용했음.
   imagesrc.Picture.Bitmap.Assign(Image321.Bitmap);

   // ScaleImage 는 Timage의 bitmap 만 사용이 가능함. 전 메인 화면을 Timage32로 해서 변환시킨것임.
   // ScaleImage(실제 크기 이미지, 변환하여 리턴할 이미지, 출소할 배율)
   // 출소할 배율은 1이면 같은것이고 1보다 작으면 작아짐.
   ScaleImage(imagesrc.Picture.Bitmap  ,image.Picture.Bitmap,(strtoint(edtresize.text)/100));

   // 파일 경로를 같게 말들고 파일 이름에 사이즈를 명시함.
   mkfilepath := ExtractFilePath(mmofilepath.text);
   mkfiletype := ExtractFileExt(mmofilepath.text);
   mkfilename := StringReplace(ExtractFileName(mmofilepath.text),mkfiletype, '',[rfReplaceAll,rfIgnoreCase]);

// 변환할 이미지 가져옴.
   image.Picture.Bitmap.SaveToFile(mkfilepath + mkfilename+ '_' + edtresize.Text + mkfiletype );
...

 

반응형

4. 프로그램 실행시 동작 화면

원본이미지

 

5. 변환된 이미지와 워터마크 이미지

 
 
원본이미지




변경후 이미지

 

반응형