8cb1f9f479
Publish SDK (PyPI) / publish (push) Has been cancelled
Publish SDK (npm) / publish (@aionui/officecli-sdk) (push) Has been cancelled
SDK smoke / smoke (windows-latest) (push) Has been cancelled
Publish SDK (npm) / publish (@officecli/officecli-sdk) (push) Has been cancelled
Publish SDK (npm) / publish (@officecli/sdk) (push) Has been cancelled
Publish SDK (npm) / publish (officecli-sdk) (push) Has been cancelled
SDK smoke / smoke (macos-latest) (push) Has been cancelled
SDK smoke / smoke (ubuntu-latest) (push) Has been cancelled
Skill parity / diff (push) Has been cancelled
242 lines
8.0 KiB
JSON
242 lines
8.0 KiB
JSON
{
|
|
"$schema": "../_schema.json",
|
|
"format": "pptx",
|
|
"element": "picture",
|
|
"elementAliases": ["image", "img"],
|
|
"parent": "slide",
|
|
"operations": {
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"query": true,
|
|
"remove": true
|
|
},
|
|
"paths": {
|
|
"positional": [
|
|
"/slide[N]/picture[M]"
|
|
]
|
|
},
|
|
"note": "Aliases: image, img. 'src' (alias 'path') required. Source resolved by ImageSource — file path, URL, data-URI, raw bytes.",
|
|
"extends": [
|
|
"_shared/picture",
|
|
"_shared/picture.docx-pptx",
|
|
"_shared/picture.pptx-xlsx"
|
|
],
|
|
"properties": {
|
|
"id": {
|
|
"type": "number",
|
|
"description": "cNvPr picture id; @id in /picture[@id=ID]. add honors a caller-supplied id so dump-replay keeps it stable for spTgt animation refs; immutable after creation.",
|
|
"add": true,
|
|
"set": false,
|
|
"get": true,
|
|
"readback": "integer shape id (cNvPr)",
|
|
"enforcement": "report"
|
|
},
|
|
"mediaType": {
|
|
"type": "string",
|
|
"description": "logical media kind derived from VideoFromFile / AudioFromFile presence under the picture. One of `picture`, `video`, `audio`. Surfaces only via the `image`/`video`/`audio`/`media` selectors.",
|
|
"add": false,
|
|
"set": false,
|
|
"get": true,
|
|
"readback": "`picture` | `video` | `audio`",
|
|
"enforcement": "report"
|
|
},
|
|
"x": {
|
|
"type": "length",
|
|
"description": "x offset in EMU/length form (e.g. 2cm). pptx absolute positioning.",
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop x=0",
|
|
"--prop x=1in"
|
|
],
|
|
"readback": "length string (FormatEmu)",
|
|
"enforcement": "report"
|
|
},
|
|
"y": {
|
|
"type": "length",
|
|
"description": "y offset in EMU/length form (e.g. 2cm). pptx absolute positioning.",
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop y=0",
|
|
"--prop y=1in"
|
|
],
|
|
"readback": "length string (FormatEmu)",
|
|
"enforcement": "report"
|
|
},
|
|
"width": {
|
|
"type": "length",
|
|
"description": "width — EMU/length form (e.g. 1.5cm). Required if not inferred from native ratio.",
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop width=5",
|
|
"--prop width=3in"
|
|
],
|
|
"readback": "length string",
|
|
"enforcement": "report"
|
|
},
|
|
"height": {
|
|
"type": "length",
|
|
"description": "height — EMU/length form (e.g. 1.5cm). Required if not inferred from native ratio.",
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop height=5",
|
|
"--prop height=2in"
|
|
],
|
|
"readback": "length string",
|
|
"enforcement": "report"
|
|
},
|
|
"rotation": {
|
|
"type": "number",
|
|
"description": "clockwise rotation in degrees. Mirrors shape/connector/group rotation — stored on the same a:xfrm rot attribute (degrees * 60000). Alias: rotate.",
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"aliases": ["rotate"],
|
|
"examples": [
|
|
"--prop rotation=45",
|
|
"--prop rotation=-90"
|
|
],
|
|
"readback": "decimal degrees (e.g. 45 or 22.5)",
|
|
"enforcement": "report"
|
|
},
|
|
"flipH": {
|
|
"type": "boolean",
|
|
"description": "mirror the picture horizontally (left-right). Mirrors shape/connector flip — stored on the same a:xfrm @flipH attribute. Pass false to clear.",
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop flipH=true",
|
|
"--prop flipH=false"
|
|
],
|
|
"readback": "true when @flipH is set (omitted otherwise)",
|
|
"enforcement": "report"
|
|
},
|
|
"flipV": {
|
|
"type": "boolean",
|
|
"description": "mirror the picture vertically (top-bottom). Mirrors shape/connector flip — stored on the same a:xfrm @flipV attribute. Pass false to clear.",
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop flipV=true",
|
|
"--prop flipV=false"
|
|
],
|
|
"readback": "true when @flipV is set (omitted otherwise)",
|
|
"enforcement": "report"
|
|
},
|
|
"link": {
|
|
"type": "string",
|
|
"description": "click-hyperlink target attached to the picture's cNvPr (so the whole image is clickable). Accepts absolute URI (https://, mailto:), slide[N] for in-deck jumps, or named actions (firstslide, lastslide, nextslide, previousslide). Pass 'none' or empty to clear.",
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop link=https://example.com",
|
|
"--prop link='slide[3]'",
|
|
"--prop link=nextslide"
|
|
],
|
|
"readback": "URL, slide[N], or named action",
|
|
"enforcement": "report"
|
|
},
|
|
"tooltip": {
|
|
"type": "string",
|
|
"description": "hover tooltip text for the click-hyperlink. Applied together with `link` in a single set/add call; standalone tooltip change without link is not supported.",
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop link=https://example.com --prop tooltip=\"Open homepage\""
|
|
],
|
|
"readback": "string",
|
|
"enforcement": "report"
|
|
},
|
|
"opacity": {
|
|
"type": "number",
|
|
"description": "picture opacity. Input as a decimal 0.0-1.0 or a percent 2-100. Stored on the blip as a:alphaModFix @amt (value * 100000); readback emits the decimal 0.0-1.0 form.",
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop opacity=0.5",
|
|
"--prop opacity=80"
|
|
],
|
|
"readback": "decimal in [0.0, 1.0]",
|
|
"enforcement": "report"
|
|
},
|
|
"brightness": {
|
|
"type": "number",
|
|
"description": "luminance brightness in [-100, 100]. Stored on the blip as a:lum @bright (value * 1000). Combine with `contrast` to mirror PowerPoint's Picture Format → Corrections.",
|
|
"add": false,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop brightness=40",
|
|
"--prop brightness=-20"
|
|
],
|
|
"readback": "decimal in [-100, 100]",
|
|
"enforcement": "report"
|
|
},
|
|
"contrast": {
|
|
"type": "number",
|
|
"description": "luminance contrast in [-100, 100]. Stored on the blip as a:lum @contrast (value * 1000). Combine with `brightness`.",
|
|
"add": false,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop contrast=-30",
|
|
"--prop contrast=20"
|
|
],
|
|
"readback": "decimal in [-100, 100]",
|
|
"enforcement": "report"
|
|
},
|
|
"shadow": {
|
|
"type": "string",
|
|
"description": "outer shadow as `color-blur-angle-dist-opacity` (mirrors shape `shadow`). Input color is hex (with or without `#`, 6- or 8-digit `RRGGBBAA`) or a scheme name; blur/dist in points; angle in degrees; opacity 0-100. Readback emits `#RRGGBB-blur-angle-dist-opacity` (always `#`-prefixed 6-digit color; the alpha is carried solely by the trailing opacity field, never double-encoded as an alpha byte).",
|
|
"add": false,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop shadow=000000-10-45-6-50",
|
|
"--prop shadow=accent1-8-90-4-60"
|
|
],
|
|
"readback": "`#RRGGBB-blur-angle-dist-opacity`",
|
|
"enforcement": "report"
|
|
},
|
|
"glow": {
|
|
"type": "string",
|
|
"description": "outer glow as `color-radius-opacity` (mirrors shape `glow`). color is hex (no `#`) or scheme; radius in points; opacity 0-100.",
|
|
"add": false,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop glow=FF0000-12-75",
|
|
"--prop glow=accent2-8-50"
|
|
],
|
|
"readback": "`color-radius-opacity`",
|
|
"enforcement": "report"
|
|
},
|
|
"compressionState": {
|
|
"type": "string",
|
|
"description": "blip compression target (a:blip cstate attribute). PowerPoint's Picture Format → Compress Pictures → target use. Accepted values: email, print, hqprint, screen, none. `none` (the schema default) is suppressed on readback.",
|
|
"add": true,
|
|
"set": true,
|
|
"get": true,
|
|
"examples": [
|
|
"--prop compressionState=email",
|
|
"--prop compressionState=hqprint"
|
|
],
|
|
"readback": "email | print | hqprint | screen",
|
|
"enforcement": "report"
|
|
}
|
|
}
|
|
}
|