딱 제가 원하는 거네요...
고맙습니다... 쉽지 않을거라 생각했는데 바로 해결됐네요..
옆에 있으면 밥이라도 사드리고 싶네요^^
박영목.월천 님이 쓰신 글 :
: 안녕하세요. 부산에 계속 살고 있는 월천입니다. 저도 초보인데... 그냥 어제 밤샘을 좀 했더니 낮잠을
: 자게 되고.. 쩝 잠이 오지 않내요... 그래서... 재미있을 것 같아서... 시작했는 데.. 이것도 제법 시간이
: 갔습니다. 이렇게 되면 오늘 또 낮잠을 자게 될 것 같습니다. 후유증.... ㅋㅋㅋ
:
: 저도 사용한지 몇년 되다 보니.... 어떻게 사용하더라...??? 좀 찾고 한다고.... 찾을 때는 google로 하세요
: 다른 사이트는 답이 없습니다. 검색은 당연히 영어로...
:
: 아~ 그리고 마크나 그림도 투명하게 넣을 수 있을 것입니다. 거의 100%, 연구해 보시면... 쉬울 것입니다.
:
: 그리고 웹에서 사용하실 것인가요? PHP 같은 언어에서 사용하게끔 나온 것도 돌아 다닐 것인데..
: 굳이 응용해서 할 필요가? 웹에서 원본 손상 주지 않고 보여질 때... 마크 투명하게 넣어서...
: 보여줄 수 있는 데... 제가 해 본 것은 아니고... 몇년 전 PHP 프로그래머가 하더군요...
: 어디서 찾아보고... 반나절 안걸렸는 데... 그리고 다른 웹언어라고 하더라도 그런 소스나 자료가 있을
: 것입니다. 웹에서 사용할 것이면 웹프로그래머에게 자료를 찾아 적용시키라고 하세요... 간단히..
: 해결될 것입니다. 저는 요즘 PHP도 좀 해보고 JSP도 해보고 합니다. JSP가 상당히 괜찮다는 생각이
: 아직 초보라... 다 만들지는 못하고 연습하는 정도... 이런 것은 언제 사용하지... 웹프로그래머로 전향할까?
:
: 그래도 질문을 하셨으니... 답을 드려야지요... GDI+에서도 잘 될 것이라 생각합니다.
: 방법은 여러가지이지만... 원리는 같으니까!
:
: 여기서는 GR32 Component를 사용했습니다. 이게 알파값을 넣을 수 있기 때문에... 투명값을 조절할 수 있습니다.
: 저도 왠만하면 이런 것 잘 사용하지 않는 데... 이런 곳에는 사용하는 것이 정신 건강에 이롭겠지요...
:
: JPG에 글을 쓴다. JPG는 손실압축이지요... 글을 쓰려고 하면 바로 쓸 수 없습니다. 컴퓨터 내부에서 그림(GIF, JPG...)은 전부 BITMAP로 처리되지요... BITMAP로 바꾸어야 뭐 할 수 있다는... GIF, JPG는 사실 그림이기 보다는 그냥 DATA
: 로 보시면 되고 이것을 읽어서 풀어 화면에 나타날 때는 BITMAP이라 보시면 됩니다. 저도 잘 몰라요...
: 어디서 들었는지... 그냥 그렇게 생각하는지... 중요한 것도 아니고... ㅋㅋㅋ
:
: 어쨌던 JPG은 BITMAP를 손상시키면서 압축을 시켜두었고... 이것을 다시 불러와서 BITMAP으로 만들고
: 그 위에 글을 반투명하게 쓰고 다시 JPG로 압축해야 하니.... 또 손실이 조금 발생하겠지요...
:
: 다 아실 것인데... 혹 모르는 다른 분이 있을까 싶어 적어 보았습니다.
:
:
: 그냥 소스 보시면 이해가 쉬울 것입니다.
:
: 그리고 소스, 실행파일 전부 올립니다. 참고 하시고...
:
: 물론 GR32를 설치하셔야 합니다. 이것 자료실에 있을 것이고 사용법이나 설치법들은 이곳에 계시는 많은 고수님들께 물어보면 답을 주실 것입니다.
:
: 그럼 저는 이제 물러 갑니다. 하시는 프로젝트 잘 끝내시기를 바랍니다.
:
:
:
: //---------------------------------------------------------------------------
:
: #include
: #include
: #pragma hdrstop
:
: #include "Unit1.h"
: //---------------------------------------------------------------------------
: #pragma package(smart_init)
: #pragma link "GR32_Image"
: #pragma resource "*.dfm"
: TForm1 *Form1;
: //---------------------------------------------------------------------------
: __fastcall TForm1::TForm1(TComponent* Owner)
: : TForm(Owner)
: {
: }
: //---------------------------------------------------------------------------
:
:
: // D://mychildren.JPG 를 불러와서...
: // 글자를 반투명하게 넣고 ...
: // D://mychildren_copy.JPG 로 저장한다.
:
: // 투명도 조절할 수도 있다.
:
: void __fastcall TForm1::BtnLoadClick(TObject *Sender)
: {
: //TImage로 JPG로 불러온다.
: Image321->Bitmap->LoadFromFile( "D:\\mychildren.JPG" );
: }
: //---------------------------------------------------------------------------
:
:
: void __fastcall TForm1::BtnWriteClick(TObject *Sender)
: {
: Image321->Bitmap->Font->Name = "Arial Black";
: Image321->Bitmap->Font->Size = 36;
: Image321->Bitmap->Font->Style = Image321->Bitmap->Font->Style << fsBold;;
: Image321->Bitmap->RenderText( 96, 32, "Merry Christmas", 200, 0x80FF0000);
: //x y 내용 //안티알리아싱,
: //Image321->Bitmap->RenderText( 96, 32, "Merry Christmas", 200, 0x80FF0000);
:
: //0x80FF0000 80: BYTE는 FF이면 투명도 없음, 80이면 중간 정도입니다.
: //그 다음 FF 00 00 는 알겠지요... R G B 입니다.
: }
: //---------------------------------------------------------------------------
:
: void __fastcall TForm1::BtnSaveClick(TObject *Sender)
: {
: //JPG로 저장하기 위해...
: TJPEGImage *jpg = new TJPEGImage();
:
: //Image32에서 바로 TJPEGImage에 넣지 못하므로 TBitmap로 바꾼다. 그리고 TJPEGImage으로
: Graphics::TBitmap *bmp = new Graphics::TBitmap();
: bmp->Assign(Image321->Bitmap);
: jpg->Assign( bmp );
:
: jpg->CompressionQuality = 80; //80%로
: jpg->Compress(); //압축한다. 물론 손실압축이지요.
:
: jpg->SaveToFile( "D:\\mychildren_copy.JPG" );
:
: delete bmp;
: delete jpg;
: }
: //---------------------------------------------------------------------------
:
:
:
:
:
: 이지석 님이 쓰신 글 :
: : JPG 파일에 테스트나 특정 심볼을 약간 반투명하게 결합시키서 그 파일에 다시 업데이트 시키려고 합니다.
: : 즉, 쇼핑몰 보면 이미지 도용을 막기위해 자기가 찍은 사진위에 특정 텍스트나 자기회사 로고를 반투명하게 결합시키잖아요?
: :
: : 그런 원리로 프로그램에서 하려고 하는데요... 어디서부터 시작해야 할지 막막하네요.
: :
: : 아시는분 조언 부탁드리겠습니다...