2012-07-27 4 views
4

Image::Magick을 사용하여 배너를 그리는 Perl 스크립트를 만들었습니다. Image :: Magick 및 Perl로 배경 투명하게 만들기

# ... some code 
my $icon = Image::Magick->new(); 
$icon->Set(size => '16x16'); 
$icon->Transparent(color=>'#010101'); 
$icon->ReadImage($imagepath); 
$full_image->Composite(# small icon 
    image=>$icon, 
    compose=>'Over', 
    opacity=>'99%', 
    x=>'12', 
    y=>'62', 
); 
# ... some code 

는 일반적으로 아이콘 배경 ( #010101)은 투명해야한다,하지만 이 작동하지 않는 이유 어떤 생각이 ... 실패? 아니면이 투명 방법 대신 사용할 수 있을까요?

편집 : 두 이미지는 PNG 파일입니다. Image::Magick 버전은 6.7입니다.

+0

을 당신이 후에도 투명 컬러 *을 설정해야 할 것 같아요 * 파일에서 이미지를로드했습니다. 그건 그렇고'$ imagepath'는 따옴표로 묶어서는 안됩니다. 어떻게'$ icon'을 파일에 저장합니까? – Borodin

+0

오 ... 실제로 $ imagepath는''/ var/...... ''입니다 : D는 방금 여기에 변수를 사용했습니다 :) .. 그러나 작은 따옴표 remvoe를 잊어 버렸습니다 : D ...' '$ imagepath'는 작동하지 않습니다. 오, 내가 볼 수있는 것처럼 그것은 최종 그림에'합성 '그것 '$ full_image-> 쓰기 ($ 파일); 그것 : D –

+0

** 편집 ** : 나는 그것을 변경하려고했습니다 _after_로드 중 :(.. 그게 아무런 차이가 없어. –

답변

0

알파 채널을 사용하려면 ImageMagick에 알려야합니다.

명령 줄에서 -alpha On이됩니다.

+0

미안하지만, 그 작품에 :(. 내가 이미지에 alphachannel을 설정했지만 아무런 차이가 없었다. –

2

정말 많은이 모듈을 사용하지 않은 그러나 나는 아이디어 몇 :

  1. 당신은 99 %에 $ full_image의 불투명도를 설정할 수 있습니다. 이미지를 투명하게 만들기 위해 작은 값으로 표시하지 않으시겠습니까?

  2. this 페이지에 따르면, 당신은 불투명라는 메서드 호출 할 수

    불투명 : 색상 => 색상 이름이 기입 => 색상 이름, 채널 => {모든, 기본, 알파 나는 먼저 이미지를 읽을 것이다

  3. } => {참, 거짓, 블랙, 블루, CMYK, 청록색, 회색, 녹색, 색인, 마젠타, 불투명도, 레드, RGB, 노란색}, 반전, 색상을 투명하게 만듭니다 (경우를 대비하여).

    $icon->ReadImage($imagepath); 
    $icon->Transparent(color=>'#010101'); 
    
  4. (미운 해킹) 실행 이미지의 시스템 명령으로 변환 후로드 :

    my $icon = Image::Magick->new(); 
    $icon->Set(size => '16x16'); 
    system("convert -transparent '#010101' not_transp.png transp.png"); 
    $icon->ReadImage('transp.png'); 
    $full_image->Composite(# small icon 
        image=>$icon, 
        compose=>'Over', 
        opacity=>'99%', 
        x=>'12', 
        y=>'62', 
    ); 
    
+0

: 1 : 나는 그것을 설정하려고했지만, 이것은 요점이 아닙니다 내가 원했던 것은 전체 이미지에 대한 불투명도 자체 : S ... 최대 100 %까지 표시 될 때, 표시되지 않는 경우, 1 % 또는 0 %와 동일한 것 2. : 동일한 것. 불투명했다. 방법을 그림에. 후에 원래 그림을 읽기 전에 .3에 아무런 차이가 : 내 질문 아래에 의견을 후이 시도했다. 아무 differece : (...하지만 어쨌든 덕분에 : 편집 후 D –

+0

: 오 오 아니 미안 해요. .. 그게 꽤 못생긴;하지만 그것은 작동 그래 : D 조 ...하지만 perl 자체가있는 옵션이 있어야합니다. –

관련 문제