2012-10-14 51 views
0

我目前使用php GD中的imagerotate()來讓用戶旋轉圖像。每當用戶像45度,75度等旋轉時,添加背景色使圖像具有矩形形狀。用戶旋轉的次數越多,圖像尺寸越大,背景顏色區域越寬。如何在不改變文件大小的情況下在php中重複旋轉圖像

$image = imagerotate($image,45, 0xFFFFFF); 

反正在PHP GD來旋轉用遊離度圖像(例如:45度,75度,306度)不添加任何背景圖像或在不增加文件圖像?

編輯:當圖像尺寸越來越大,白色區域越來越寬時,出現此錯誤:「致命錯誤:允許的內存大小爲33554432個字節已耗盡」。這就是爲什麼我想知道任何其他方式來旋轉圖像。

謝謝。

+0

圖像文件總是矩形,當你旋轉圖像時你怎麼想象圖像大小填充不被改變? (如果圖像不是正方形) –

+1

您是否考慮過保持原始圖像不變,跟蹤所有旋轉的總和並僅將原始圖像旋轉一次? – DCoder

+0

@DCoder,thx ...我做了,但用戶需要在更改旋轉度時看到更改。這就是爲什麼我不能那樣做。 – ATZ

回答

0

嘗試將背景設置爲黑色,這將是0,並且還使用JPEG,這是一種壓縮圖像格式。這可以幫助 - 雖然我沒有測試過自己。嘗試一下。

例子:

$image = imagerotate($image, 45, 0x000000); 
+0

我用黑色和JPEG試過了,但沒有奏效。 – ATZ

+0

哇......對不起......它實際上是添加像素,所以在物理上,它確實會增加文件的權重。 – NYCBilly

0

我正要與DCoder相同的答案在這裏寫一些代碼。

這是您可以應用的最佳過程,因爲它只需要一次轉換。

再見

相關問題