2011-08-25 2 views
23

CarrierWave in Rails 3.0 사용 방법 너비가 500 픽셀보다 큰 이미지의 크기를 500 픽셀로 조정하고 높이를 적절하게 조정합니다. 동일한 초기 비율 유지 너비와 높이. 당신이 RMagick 또는 MiniMagick를 사용하는 가정CarrierWave 및 특정 너비로 ​​크기 조정

+0

의 중복 가능성 [Carrierwave이 - 고정 너비로 ​​이미지 크기 조정] (http://stackoverflow.com/questions/8570181/carrierwave-resizing-images-to-fixed-width) –

+0

복제품이 아닙니다. 이것은 한 치수가 고정 된 종횡비를 유지하는 것에 관한 것입니다. – sevenseacat

답변

-4

, 당신의 업 로더 클래스에이 줄을 추가 :

process :resize_to_fit => [500] 

상세 정보 :

http://carrierwave.rubyforge.org/rdoc/classes/CarrierWave/RMagick.html#M000064 http://www.imagemagick.org/RMagick/doc/ image3.html # resize_to_fit

+2

작은 이미지를 날려 버릴뿐 아니라 큰 이미지를 축소합니다. 질문은 큰 이미지를 줄이는 것에 대해서만 묻습니다 : 'process : resize_to_limit => [500]' –

+1

이 논리 부분으로가는 도중에 이미지 너비를 물어볼 수 있습니까? 그런 다음 사용하고 if else를 만듭니다. – BuddyJoe

+0

정확히 무엇을하려는 것입니까? –

4

나는 이것이 오래된 질문이지만, 비슷한 것이 필요하다는 것을 알고있다.

이미지 크기가 지정된 크기보다 큰 경우 크기를 조정하고 크기가 작 으면 크기를 조정하지 않았 으면합니다.

resize_to_limit (폭, 높이)

원래의 종횡비를 유지하면서 특정 치수에 맞도록 이미지의 크기를 조절. 이미지가 지정된 크기보다 큰 경우에만 이미지의 크기를 조정합니다. 결과 이미지는 더 작은 차원에서 지정된 것보다 짧거나 더 좁을 수 있지만 지정된 값보다 클 수 없습니다.

세부 사항 : http://carrierwave.rubyforge.org/rdoc/classes/CarrierWave/MiniMagick.html#M000051

1

만 폭을 제한하려면, 사용 :

process :resize_to_limit => [500, -1] 

사용 :

process :resize_to_limit => [-1, 500] 

높이 만 제한.

+0

높이가> = 0이어야합니다. -1 : – MaicolBen

30
process :resize_to_limit => [500, 0] 

적절한 가로 세로 비율을 유지하면서 높이를 허용하면서 이미지를 500px보다 넓게 처리합니다.

+6

이 값을 반송파 0.10.0 및 mini_magic 3.6.0에 사용하면 이미지가 1x1 픽셀로 축소됩니다. 대신 인자로'[500, nil]'을 사용하면 나를 대신 할 수있다. – efatsi

36

다음을 사용할 수 있습니다

process :resize_to_limit => [500, nil] 
+0

올바른 구문 인 것 같습니다. – valk

관련 문제