2016-11-17 78 views
0

我需要在一個PNG圖像中將X中的-1和Y中的-4中的像素偏移。如何使用ImageMagick將圖像內容偏移X,Y像素?

圖像是從Corel Draw創建的PDF轉換而來的,它增加了一個偏移量,打破了我正在處理的圖像處理系統。 align_image_stack從處理這些文件時,hugin-tools軟件包崩潰,這就是爲什麼我要求嘗試一個固定的最後修正。

我嘗試這樣的命令:

$ convert a.png: -geometry 100%-100-100 b.png 

$ convert -region '100%+500px+100px' a.png b.png 

$ convert -page '100%+500px+100px' a.png b.png 

$ convert -repage '100%+500px+100px' a.png b.png 

$ convert -crop '100%+500px+100px' a.png b.png 

$ convert a.png -geometry 100%-100px-100px b.png 

他們都完成了沒有錯誤,但給了我餵它們作爲輸入相同的圖像。

a.png = b.png

我在做什麼錯?爲什麼Covert命令不會移動圖像內容?

編輯:

這是一對圖像來說明我的問題。第一張圖像是我想要的,第二張是Corel Draw的內容,我想應用任意的X/Y偏移來彌補這種差異。圖像只是爲了說明問題,這不是真實的數據。

Two images

新的一點是,我能夠產生偏移一次,但我不能重現此。它看起來像我在ImageMagick中的一個錯誤,因爲我正在嘗試之前使用過的相同的命令,現在它不起作用。

我也嘗試使用GraphicsMagick重新檢查這一點。

我能夠得到一個寫入到PNG頭的偏移量,但這不會使Blender使用該偏移量,所以我需要將該偏移量「刻錄」到位圖數據中,而不僅僅是在元數據中指定它。

這個命令做了改變,但只有GIMP似乎明白這一點,我需要讓攪拌機將偏移:

convert a.png -repage '100%x100%+100+1000' b.png 

我試着用 - 抽樣申請改造,但它沒有alpplied,並保持在元數據 - 我可以用GIMP檢查這個。

convert a.png -repage '100%x100%+100+1000' -sample 100% b.png 

我不敢相信我無法做到這麼簡單的事情。

+0

如何共享有偏移的圖像? –

+0

我無法發佈確切的圖像,因爲它們屬於客戶端。 但我可以用不同的文件來說明問題。 – unfa

+0

無法診斷您的插圖中的問題,它只是兩個圖像的屏幕截圖。獲取'pngcheck'並查看'pngcheck -v a.png'和'pngcheck -v b.png'的結果。如果PNG包含一個偏移量,它將在'oFFs'塊中。 –

回答

1

更新回答

這是很難理解你想要什麼沒有適當的圖像,但在這裏是在猜測你的解決方案的另一種嘗試。讓我們先從這個圖像 - 忽略了顏色,我只加了他們,所以你可以看到圖像的程度,你可以刪除/無論如何改變他們:

enter image description here

的新計劃是修剪你的圖像,信件周圍沒有邊框,然後在隨後添加任何你想要的邊框。因此,修整現有的邊界並添加10px的邊框左側和右側,一個50像素的邊框頂部和底部:

convert start.png -trim -bordercolor red -border 10x50 result.png 

​​

或者,修剪原來的邊框並添加10px的邊框右側只:

convert start.png -trim -gravity east -background blue -splice 10x0 result.png 

enter image description here

希望這會給你一個方法來實現你所追求的。

原來的答案

如果你想在頁面偏移復位至零,最簡單的方法是:

mogrify +repage image.png 

或者,稍硬:

convert image.png +repage result.png 
+0

這並不能解決我的問題,因爲文件元數據中沒有指定可以重置的偏移量。我需要應用自定義偏移量。 不幸的是,我使用的任何幾何相關命令都沒有對圖像進行任何更改,它們似乎被默默忽略, 我模糊了圖像,改變了伽瑪,翻轉了它,但沒有偏移像素圖片。 – unfa

+0

@unfa我又有一次嘗試 - 請再看一遍。 –

+0

看着你的更新答案 - 這是一個有趣的解決方案 - 它實際上可能是我的解決方案! 如果我測量我的「完美」頁面的邊距,我可以修剪圖像並添加邊框,使圖像適當裁剪。 也許如果「拼接」命令可以接受負值,整個事情可能會更容易,並沒有「修剪」階段的工作。 – unfa