Geometry 提供了一種方便的方法來指定幾何參數。可以從包含幾何規範的 C 字串或 C++ 字串初始化物件。它也可以通過更有效的參數化建構函式進行初始化。
幾何規範的格式為 "<寬度>x<高度>{+-}<xoffset>{+-}<yoffset>"(其中*寬度*、*高度*、*xoffset* 和 *yoffset* 是數字),用於指定物件的大小和放置位置。
幾何規範中的*寬度*和*高度*部分以像素為單位。*xoffset* 和 *yoffset* 部分也以像素為單位,分別用於指定放置坐標距圖像左邊和上邊的距離。兩種偏移量均從物件的指定邊緣到圖像的相應邊緣進行測量。X 偏移量可以通過以下方式指定
+ *xoffset* |
物件的左邊緣應放置在距離圖像*左邊緣* *xoffset* 像素處。 |
- *xoffset* |
物件的左邊緣應放置在圖像外部,距離圖像*左邊緣* *xoffset* 像素。 |
Y 偏移量具有類似的含義
+ *yoffset* |
物件的上邊緣應位於圖像*頂部邊緣*下方 *yoffset* 像素處。 |
- *yoffset* |
物件的上邊緣應位於圖像*頂部邊緣*上方 *yoffset* 像素處。 |
偏移量必須成對給出;換句話說,為了指定 *xoffset* 或 *yoffset*,兩者都必須存在。
ImageMagick 在標準幾何字串中添加了一些限定詞,用於調整圖像大小時使用。擴展幾何字串的形式為“<寬度>x<高度>{+-}<xoffset>{+-}<yoffset>{%}{!}{<}{>}”。擴展幾何字串*僅*應在*調整圖像大小時*使用。將擴展幾何字串用於其他應用程式可能會導致 API 呼叫失敗。下表顯示了可用的限定詞
ImageMagick 幾何限定詞
限定詞 |
描述 |
% |
將寬度和高度解釋為當前大小的**百分比**。 |
! |
**精確地**調整大小為寬度和高度,失去原始縱橫比。 |
< |
僅當圖像**小於**幾何規範時才調整大小。 |
> |
僅當圖像**大於**幾何規範時才調整大小。 |
如果第一個字元不是數字,則提供給 Geometry 建構函式的任何幾何字串規範都被視為 Postscript 頁面大小暱稱。在轉換為內部物件格式之前,Geometry 建構函式會將這些頁面大小規範轉換為等效的數字幾何字串規範(保留任何偏移量元件)。Postscript 頁面大小規範是填充該尺寸頁面所需的像素幾何的簡稱。由於美國使用的 11x17 英寸頁面大小以數字開頭,因此它不被支援作為 Postscript 頁面大小暱稱。相反,當需要 11x17 輸出時,請替換幾何規範“792x1224>”。
Postscript 頁面大小規範的一個例子是 "letter+43+43>"。
Postscript 頁面大小暱稱
Postscript 頁面大小暱稱 |
等效的擴展幾何規範 |
Ledger |
1224x792> |
Legal |
612x1008> |
Letter |
612x792> |
LetterSmall |
612x792> |
ArchE |
2592x3456> |
ArchD |
1728x2592> |
ArchC |
1296x1728> |
ArchB |
864x1296> |
ArchA |
648x864> |
A0 |
2380x3368> |
A1 |
1684x2380> |
A2 |
1190x1684> |
A3 |
842x1190> |
A4 |
595x842> |
A4Small |
595x842> |
A5 |
421x595> |
A6 |
297x421> |
A7 |
210x297> |
A8 |
148x210> |
A9 |
105x148> |
A10 |
74x105> |
B0 |
2836x4008> |
B1 |
2004x2836> |
B2 |
1418x2004> |
B3 |
1002x1418> |
B4 |
709x1002> |
B5 |
501x709> |
C0 |
2600x3677> |
C1 |
1837x2600> |
C2 |
1298x1837> |
C3 |
918x1298> |
C4 |
649x918> |
C5 |
459x649> |
C6 |
323x459> |
Flsa |
612x936> |
Flse |
612x936> |
HalfLetter |
396x612> |
幾何提供從字串、一組參數或透過屬性初始化其值的方法。下表顯示了可在 Geometry 中使用的方法
幾何方法
方法 |
返回類型 |
簽章 |
描述 |
Geometry |
|
size_t width_, size_t height_, ssize_t xOff_ = 0, ssize_t yOff_ = 0, bool xNegative_ = false, bool yNegative_ = false |
透過明確的參數構造幾何。 |
const string geometry_ |
從 C++ 字串構造幾何 |
||
const char * geometry_ |
從 C 字串構造幾何 |
||
width |
void |
size_t width_ |
寬度 |
size_t |
void |
||
height |
void |
size_t height_ |
高度 |
size_t |
void |
||
xOff |
void |
ssize_t xOff_ |
從原點起的 X 偏移量 |
ssize_t |
void |
||
yOff |
void |
ssize_t yOff_ |
從原點起的 Y 偏移量 |
size_t |
void |
||
xNegative |
void |
bool xNegative_ |
X 偏移量的符號為負數?(X 原點在右側) |
bool |
void |
||
yNegative |
void |
bool yNegative_ |
Y 偏移量的符號為負數?(Y 原點在底部) |
bool |
void |
||
percent |
void |
bool percent_ |
寬度和高度以百分比表示 |
bool |
void |
||
aspect |
void |
bool aspect_ |
調整大小而不保留縱橫比 (!) |
bool |
void |
||
greater |
void |
bool greater_ |
如果圖像大於尺寸,則調整大小 (>) |
bool |
void |
||
less |
void |
bool less_ |
如果圖像小於尺寸,則調整大小 (<) |
bool |
void |
||
isValid |
void |
bool isValid_ |
對象是否包含有效的幾何?可以設置為*false*以使現有的幾何對象無效。 |
bool |
void |
||
operator = |
const Geometry& |
const string geometry_ |
透過 C++ 字串設置幾何 |
operator = |
const Geometry& |
const char * geometry_ |
透過 C 字串設置幾何 |
operator string |
string |
Geometry& |
獲取幾何的 C++ 字串表示形式 |
此外,我們還支持這些尚未記錄的幾何標誌:填充區域標誌 ('^') 和像素區域計數限制標誌 ('@')。