2015-07-21 24 views
2

我可以上傳多個圖像,但我不確定如何自定義圖像的大小。Ruby on rails:使用Refile Gem,在不裁剪或扭曲圖像的情況下顯示圖像

這是我觀看圖像:

<%= attachment_image_tag(image, :file, :fill, 300, 300) %> 

:fill:裁剪圖像

300, 300:是

重新提交之前,我硬編碼的圖像的源的高度和寬度,然後我使用這個CSS來修復圖像的大小。

img { 
    display:block; 
    max-height: 430px; 
    max-width: 100%; 
    width:auto; 
    height:auto; 
} 

我想有貫穿一致的高度,但寬度可以是任何尺寸,不會被扭曲或裁剪。

在這篇文章的時候,我想我可以通過增加attachment_image_tag選項中的寬度和高度來獲得像800, 800那樣的寬度和高度,但它仍然會裁剪圖像......另外,我試圖擺脫:fill,但我的圖片不會顯示,代碼只是打破。

回答

4

如果你看一看重新提交維基你會發現還有其他的方法來裁剪圖像:see here

,我可以在你的CSS看到你正在尋找的430px一個最大高度,但如果圖像高度比430px低,你會不會擴大它是完全430px,所以我認爲這是不符合邏輯的使用fill,相反我會用limit

<%= attachment_image_tag(image, :file, :limit, 300, 300) %> 

的文件說:

極限(IMG,寬度,高度)

調整圖像的大小,以適應指定的尺寸範圍內,同時 保留原來的寬高比。如果 大於指定的尺寸,將只調整圖像大小。生成的圖像可能是 比任一維中指定的更短或更窄,但不會比指定值大 。

在你的情況下,你只是想要修復高度,你想寬度是任何大小的權利?所以在看的limit代碼後,它看起來像這樣:

def limit(img, width, height) 
    img.resize "#{width}x#{height}>" 
end 

重新提交使用ImageMagick的裁剪圖像,如果我沒看錯,你可以做到這一點做這樣的事情:

x430   # width = any size, height = 430 

所以我認爲你可以只設置的limit寬度參數去這樣的:

<%= attachment_image_tag(image, :file, :limit, nil, 430) %> 

希望得到這個幫助。

+0

這確實幫了我。我不知道在哪裏尋找其他方法。我使用':fit'而不是':limit',但是,您需要添加寬度。我只是不確定你如何做到100%?我會接受這個答案,但它引導我到了正確的位置,但是如果我可以在寬度上做到100%,我會怎麼做? – hellomello

+0

這是不是適合你:attachment_image_tag(image,:file,:limit,,430) – medBo

+0

當你這樣做時會得到什麼錯誤? – medBo