Magick::Geometry

Geometry 提供了一種方便的方法來指定幾何參數。可以從包含幾何規範的 C 字串或 C++ 字串初始化物件。它也可以通過更有效的參數化建構函式進行初始化。

幾何規範

幾何規範的格式為 "<寬度>x<高度>{+-}<xoffset>{+-}<yoffset>"(其中*寬度*、*高度*、*xoffset* 和 *yoffset* 是數字),用於指定物件的大小和放置位置。

幾何規範中的*寬度*和*高度*部分以像素為單位。*xoffset* 和 *yoffset* 部分也以像素為單位,分別用於指定放置坐標距圖像左邊和上邊的距離。兩種偏移量均從物件的指定邊緣到圖像的相應邊緣進行測量。X 偏移量可以通過以下方式指定

+ *xoffset*

物件的左邊緣應放置在距離圖像*左邊緣* *xoffset* 像素處。

- *xoffset*

物件的左邊緣應放置在圖像外部,距離圖像*左邊緣* *xoffset* 像素。

Y 偏移量具有類似的含義

+ *yoffset*

物件的上邊緣應位於圖像*頂部邊緣*下方 *yoffset* 像素處。

- *yoffset*

物件的上邊緣應位於圖像*頂部邊緣*上方 *yoffset* 像素處。

偏移量必須成對給出;換句話說,為了指定 *xoffset* 或 *yoffset*,兩者都必須存在。

ImageMagick 對幾何規範的擴展

ImageMagick 在標準幾何字串中添加了一些限定詞,用於調整圖像大小時使用。擴展幾何字串的形式為“<寬度>x<高度>{+-}<xoffset>{+-}<yoffset>{%}{!}{<}{>}”。擴展幾何字串*僅*應在*調整圖像大小時*使用。將擴展幾何字串用於其他應用程式可能會導致 API 呼叫失敗。下表顯示了可用的限定詞

ImageMagick 幾何限定詞

限定詞

描述

%

將寬度和高度解釋為當前大小的**百分比**。

!

**精確地**調整大小為寬度和高度,失去原始縱橫比。

<

僅當圖像**小於**幾何規範時才調整大小。

>

僅當圖像**大於**幾何規範時才調整大小。

Postscript 頁面大小對幾何規範的擴展

如果第一個字元不是數字,則提供給 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++ 字串表示形式

此外,我們還支持這些尚未記錄的幾何標誌:填充區域標誌 ('^') 和像素區域計數限制標誌 ('@')。