我正在處理一些批處理例程以管理大型jpg文件庫。我有一個很好的例程,可以快速將4MB +文件縮小到40kb +。使用CCR.Exif,我可以確定是否需要旋轉圖像。我的問題是,我保存之前找不到任何代碼來旋轉圖像。我真的需要能夠做到這一點,而不會產生將圖像帶入屏幕的開銷。什麼是旋轉jpg圖像文件的最快方法?
我使用內置的jpeg.pas;我在Gabriel Corneanu的CodeCentral找到另一個圖書館,但它尚未更新爲DXE2。我所需要做的就是輪換90 °。
任何幫助將不勝感激!
我正在處理一些批處理例程以管理大型jpg文件庫。我有一個很好的例程,可以快速將4MB +文件縮小到40kb +。使用CCR.Exif,我可以確定是否需要旋轉圖像。我的問題是,我保存之前找不到任何代碼來旋轉圖像。我真的需要能夠做到這一點,而不會產生將圖像帶入屏幕的開銷。什麼是旋轉jpg圖像文件的最快方法?
我使用內置的jpeg.pas;我在Gabriel Corneanu的CodeCentral找到另一個圖書館,但它尚未更新爲DXE2。我所需要做的就是輪換90 °。
任何幫助將不勝感激!
在壓縮圖像數據之前,必須先對其進行壓縮。即使它是不可見的畫布,仍然需要將其加載到呈現它們的組件中。然後,您可以使用Windows API調用通過直接訪問畫布來旋轉圖像。我沒有旋轉之前的圖像,但我通過訪問畫布以其他方式操縱它。
GR32和EFG都是具有多種組件和算法的優秀網站。這是EFG網站上旋轉圖像的一個例子。代碼是德爾福3,但它應該仍然適用於圖像處理。
TImage32
具有將圖像旋轉90度以及方法。請參閱。 TImage32
是GR32庫的一部分,並已針對Delphi-XE2進行了更新。
svn co https://graphics32.svn.sourceforge.net/svnroot/graphics32/trunk graphics32
感謝您指點我的efg頁面!這就是我找到[鏈接](http://www.efg2.com/Lab/ImageProcessing/Unit7.TXT)的地方,它正是我所需要的。 並且我遲疑接受你的回答。最近我有點極度分心。 – skippix 2012-09-03 12:05:32
旋轉JPEG圖像是寫爲JPEG解碼器,讀取並解碼左至右JPEG像素的新的/交替像素泵(X,最快的方法, y),並將它們寫入位圖存儲器(y,x) - 也就是說,每個掃描線在同一偏移量處寫入一個像素,而不是在同一掃描線上每列寫入一個像素的正常模式。
其他任何東西都會對位圖數據進行多次傳遞。
感謝您的回覆。聽起來很有趣,但在這一點上我的能力有點過分。 – skippix 2012-09-03 12:09:41
如果您需要逐步旋轉JPEG 90度,然後查找無損轉換。 例如irfanview.com有一個特殊的插件DLL,雖然它沒有公共API,但也許你可以問Irfan Author或使用調試器和cff瀏覽器進行反向工程。
很多討論可能只是通過搜索,包括討論它是如何實現的。 https://www.google.ru/search?client=opera&q=lossless+jpeg+rotation
組件目錄有像 http://www.torry.net/quicksearchd.php?String=jpeg+lossless&Title=No
不會與旋轉顆粒小於90個的步驟工作,但由於正交輪流保持searchign無損JPEG轉換。
英特爾用來提供一個成像dll,它有一個偉大的無損jpeg旋轉。 – 2012-08-09 14:43:52
第一個谷歌鏈接討論獨立的JPEG小組,以及它們帶有Delphi接口的DLL(即使已經過時,intf可能很容易用FreePascal的h2pas完成或手動完成,因爲他只需要很少的功能) – 2012-08-09 14:47:52
感謝您的迴應!有一些很好的閱讀。 – skippix 2012-09-03 12:08:56
你在使用什麼類的JPG操作? 「jpeg.pas」單元內置的一個?你如何旋轉你的形象?以90°倍數或任意角度自由旋轉? – TLama 2012-08-08 19:51:40
我澄清了細節;讓我知道你是否需要更多信息。感謝您的關注! – skippix 2012-08-08 23:59:45
所以你真正的問題是「如何旋轉JPEG圖像」?並且請不要將標籤信息放在問題標題中; SO有一個很好的標籤系統,它實際上是有效的,而且沒有必要 - 觀看德爾福問題的人會看標籤,而不關心他們的人不會閱讀標籤。 :-) – 2012-08-09 01:06:55