2014-01-09 10 views
13

현재 일부 이미지의 크기를 조절하기 위해 Gimp를 사용하고 있습니다. 나는 웹 개발자이지만 이미지 조작 소프트웨어는 디자이너의 대부분이 제공하는 이미지를 사용하지 않기 때문에 김프 도구가 나에게 익숙하지 않습니다. Gimp 사이트의 모든 자습서와 도움말 가이드를 살펴 보았지만 가장 간단한 질문에 대한 답을 찾을 수 없습니다.캔버스에 맞게 레이어 크기 조정 - Gimp

가로 세로 비율을 유지하면서 현재 캔버스에 맞게 레이어의 크기를 조정하는 방법은 무엇입니까?

저는 기본적으로 캔버스에 고정 된 크기를 설정하고 이미지를 프로젝트로 레이어로 가져옵니다. 그런 다음이 훨씬 더 큰 이미지의 크기를 축소하여 가로 세로 비율이 보존 된 Canvas에 맞출 수 있습니다. 레이어에 맞게 캔버스 크기를 조정하는 방법을 찾았지만 찾고있는 것은 아닙니다.

도움을 주시면 감사하겠습니다.

답변

6

이것은하기 쉽지만 프로그램 UI에 적용 할 수있는 수백 가지 옵션 중에서 '선출 된'것이 아닙니다. programatcially 결정된 화상/층의 비율이 너비 또는 높이에 큰지 여부되어야 할 어떤 , 스케일이 비율을 사용

방법 아웃 동작을 수행하는 프로그램 스크립트 기능을 사용하는 것 그 레이어를 중앙에 놓습니다.

편의를 위해 필자는 python 콘솔 (filters-> python-> console)에 복사하여 붙여 넣을 수있는 방법으로 한 줄에 파이썬 코드를 작성하여 위에 효과를 적용했습니다 가장 최근의 열린 이미지의 레이어. 이 에 크기를 조정할 이미지 나 레이어를 선택 허용하지 않기 때문에이 훨씬 더, 수행,하지만 실용적이지 수 있기 때문에

img = gimp.image_list()[0]; layer = img.layers[0]; factor = min (float(img.width)/layer.width, float(img.height)/layer.height); layer.scale(int(layer.width * factor), int(layer.height * factor)); layer.set_offsets((img.width - layer.width)/2, (img.height - layer.height)/2) 

, 나는뿐만 아니라 GIMP를위한 파이썬 스크립트로 형식의. 플러그인 디렉토리의 편집 -> 환경 설정 -> 폴더 -> 플러그인을 확인하고 내용을 파일로 붙여 넣습니다 (Windows의 경우 파일 확장자는 ".py"여야 함) Linux의 경우 .

#! /usr/bin/env python 
# coding: utf-8 

from gimpfu import * 

def scale_layer_to_canvas_size(img, layer): 
    pdb.gimp_image_undo_group_start(img) 
    factor = min (float(img.width)/layer.width, 
       float(img.height)/layer.height) 

    layer.scale(int(layer.width * factor), int(layer.height * factor)) 
    layer.set_offsets((img.width - layer.width)/2, 
     (img.height - layer.height)/2) 
    pdb.gimp_image_undo_group_end(img) 

register("scale-layer-to-canvas-size", 
    "Scale layer to canvas size", 
    "Scales the layer to canvas size, keeping the aspect ratio", 
    "João S. O. Bueno", "Public domain", "2014", 
    N_("Scale layer to canvas size..."), 
    "*", 
    [(PF_IMAGE, "image",  "Input image", None), 
    (PF_DRAWABLE, "layer", "Input drawable", None), ], [], 
    scale_layer_to_canvas_size, menu="<Image>/Layer/", 
    ) 

main() 
: 및 Mac OS는 확장자가 작동,하지만 당신은) "파일 에게"exectuable "속성을 부여해야

을 GIMP를 다시 시작하면 편리 레이어 메뉴에있는 새 명령을해야합니다

위 코드와 동일하지만 "img"및 "layer"는 GIMP 에 의해 사용되며 메뉴에서 작업을 선택하면 두 가지 추가 호출이 있습니다. 나머지 코드 justtheneeded된다 상용구 해당 기능이 어떤 이유로 불구자 아닌 GIMP

+1

이것은 훌륭합니다. 고맙습니다. 김프에서 표준으로 포함되지 않은 이유는 저 밖에 있습니다. – jezzipin

8

으로 함수를 등록 - 것을 모두 scalignand 센터링 한 번의 작업으로 "취소"이다. 모든 스크립트없이 대안은 다음의 Layer -> Layer to Image Size가 속임수를 썼는지

Layer -> Scale Layer 
4

Image -> Canvas를 사용하여 내 캔버스를 축소 (원하는대로 층을 중심으로) 후 (이미지 크기 조정없이). 이것은 김프와 함께입니다 2.8.16