Képmódosító hatások kezelése prezentációkban PHP-val
Áttekintés
Az Aspose.Slides a képmódosításokat rendezett gyűjteményként reprezentálja a képet átalakító műveletekkel. Egy képkerethez kezdje a keret Picture elemével, és hívja meg a Picture::getImageTransform metódust. A visszakapott ImageTransformOperationCollection lehetővé teszi műveletek hozzáadását, felsorolását, vizsgálatát, eltávolítását és törlését az eredeti kép byte-ok újraírása nélkül.
Ez a cikk egy teljes munkafolyamatot mutat be a fényerő és kontraszt, színátalakítások, elmosás, átlátszóság, rendezett hatásláncok, hatékony értékek, eltávolítás és PPTX körkörös ellenőrzés használatára.
Értsd meg a hatás tulajdonjogát és a kép újrahasználatát
Egy képernyőforrás és a megjelenítő kép külön objektumok:
- PPImage tárolja vagy hivatkozik a prezentáció által birtokolt forráskép adataira.
- Picture egy képkitöltéshez tartozik, és egy képernyőforráshoz hivatkozik, miközben tárolja a kép transzformációs gyűjteményt.
- PictureFrame a dia alakzat, amely a megfelelő képkitöltést, geometriát, vágó beállításokat és egyéb keret-szintű formázásokat birtokolja.
Ezért a képet átalakító műveletek nem módosítják a PPImage byte-jait. Ha ugyanazt a PPImage‑t többször adjuk át a ShapeCollection::addPictureFrame metódusnak, minden új képkeret saját Picture‑t és saját transzformációs gyűjteményt kap. Egy kereten alkalmazott szürkeárnyalat nem teszi a többi keretet szürkeárnyalattá, még akkor sem, ha mindegyik ugyanazt a beágyazott képernyőforrást használja.
Ugyanezt a Picture::getImageTransform modellt más képkitöltések is használják, például alakzat‑ vagy dia‑háttér esetén. Az alábbi példák a képkeretekre koncentrálnak.
Használj érvényes paramétertartományokat és egységeket
A bemutatott módszerek a következő szemantikus tartományokat és egységeket alkalmazzák. Tartsd be ezeket a tartományokat, még ha egy adott könyvtárverzió nem is utasítja el azonnal a tartományon kívüli értékeket; a célprezentáció formátuma normalizálhat, kihagyhat vagy elutasíthat érvénytelen adatot a mentéskor vagy amikor a PowerPoint megnyitja a fájlt.
| Művelet | Paraméterek | Érvényes tartomány és egység |
|---|---|---|
| addLuminanceEffect | brightness, contrast |
-100‑tól 100‑ig, százalék; 0 változatlanul hagyja az összetevőt. |
| addGrayScaleEffect | Nincs | Nincsenek numerikus paraméterek. Az alfa változatlan. |
| addDuotoneEffect | color1, color2 |
Két szín a sötét és a világos pixelekhez. Az java.awt.Color RGB és alfa csatornái 0‑tól 255‑ig terjednek. |
| addTintEffect | hue, amount |
Árnyalat 0 (inkl.)‑tól 360 (exkl.)‑ig fokban; mennyiség -100‑tól 100‑ig, százalék. |
| addHSLEffect | hue, saturation, luminance |
Árnyalat 0‑tól 360‑ig fokban; telítettség és fényerő -100‑tól 100‑ig, százalék. |
| addColorReplaceEffect | color |
A helyettesítő szín csatornaértékei 0‑tól 255‑ig. A meglévő alfa értékek változatlanok. |
| addBlurEffect | radius, grow |
A sugár nemnegatív és pontban mérve; grow logikai érték, amely meghatározza, hogy a elmosott tartalom kiterjedhet‑e az eredeti határokon kívülre. |
| addAlphaModulateFixedEffect | amount |
Nemnegatív százalék. Használj 0‑tól 100‑ig szokásos átlátszóság‑skálához: 0 teljesen átlátszó, 100 megőrzi a meglévő alfat. |
| addAlphaReplaceEffect | alpha |
0‑tól 100‑ig, százalékos átlátszóság. |
| addAlphaBiLevelEffect | threshold |
0‑tól 100‑ig, százalékos alfa küszöb. Az alatta lévő értékek átlátszóvá válnak; a küszöbnél vagy afelett lévők átlátszatlanok. |
Fix alfa moduláció esetén az átlátszóság és az opacitás egymást kiegészítik. Például a 35 % átlátszóság egy 65 % alfa‑modulációs értéknek felel meg.
Fényerő és kontraszt alkalmazása
ImageTransformOperationCollection::addLuminanceEffect egy Luminance műveletet ad vissza. Skáláris beállításait a művelet létrehozásakor adhatja meg. A Luminance::getEffective kiszámított, csak olvasható értékeket ad, amelyeket ellenőrizhet vagy naplózhat.
Az alábbi példa 15 %‑kal növeli a fényerőt és 20 %‑kal a kontrasztot, majd előnézetet jelenít meg anélkül, hogy a beágyazott képet módosítaná:
use aspose\slides\ImageFormat;
use aspose\slides\Images;
use aspose\slides\Presentation;
use aspose\slides\ShapeType;
$presentation = new Presentation();
try {
$slide = $presentation->getSlides()->get_Item(0);
$sourceImage = Images::fromFile("photo.png");
try {
$image = $presentation->getImages()->addImage($sourceImage);
} finally {
if (!java_is_null($sourceImage)) {
$sourceImage->dispose();
}
}
$pictureFrame = $slide->getShapes()->addPictureFrame(ShapeType::Rectangle, 50, 50, 400, 260, $image);
$imageTransform = $pictureFrame->getPictureFormat()->getPicture()->getImageTransform();
$luminance = $imageTransform->addLuminanceEffect(15, 20);
$effectiveValues = $luminance->getEffective();
echo "Brightness: " . java_values($effectiveValues->getBrightness()) . "%" . PHP_EOL;
echo "Contrast: " . java_values($effectiveValues->getContrast()) . "%" . PHP_EOL;
$preview = $slide->getImage();
try {
$preview->save("brightness-contrast-preview.png", ImageFormat::Png);
} finally {
if (!java_is_null($preview)) {
$preview->dispose();
}
}
} finally {
$presentation->dispose();
}
A Luminance a szabványos DrawingML fényerő‑kontraszt hatás. Ha ezeket a beállításokat PPTX körkörös út után is szerkeszthetőnek kell maradniuk, nyissa meg újra a mentett prezentációt, és ellenőrizze mind a művelet típusát, mind a hatékony értékeket.
Színátalakítások alkalmazása
A színhatásokat külön‑külön alkalmazhatja olyan képkeretekre, amelyek ugyanazt a képforrást használják. Az alábbi példa öt keretet hoz létre, és szürkeárnyalatot, duotone‑t, színárnyalatot, HSL‑korrekciót és színcserét alkalmaz.
Duotone két függetlenül szerkeszthető színparamétert tartalmaz: a color1 a sötét pixeleket, a color2 a világos pixeleket térképezi. Ez egy jó példa egy olyan hatásra, amelynek beállításai bonyolultabbak egy egyszerű skalár értéknél.
use aspose\slides\Images;
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;
use aspose\slides\ShapeType;
$presentation = new Presentation();
try {
$slide = $presentation->getSlides()->get_Item(0);
$sourceImage = Images::fromFile("photo.png");
try {
$image = $presentation->getImages()->addImage($sourceImage);
} finally {
if (!java_is_null($sourceImage)) {
$sourceImage->dispose();
}
}
$grayFrame = $slide->getShapes()->addPictureFrame(ShapeType::Rectangle, 20, 20, 180, 120, $image);
$grayFrame->getPictureFormat()->getPicture()->getImageTransform()->addGrayScaleEffect();
$duotoneFrame = $slide->getShapes()->addPictureFrame(ShapeType::Rectangle, 220, 20, 180, 120, $image);
$duotone = $duotoneFrame->getPictureFormat()->getPicture()->getImageTransform()->addDuotoneEffect();
$duotone->getColor1()->setColor(new Java("java.awt.Color", 0, 0, 128));
$duotone->getColor2()->setColor(new Java("java.awt.Color", 255, 215, 0));
$tintFrame = $slide->getShapes()->addPictureFrame(ShapeType::Rectangle, 420, 20, 180, 120, $image);
$tintFrame->getPictureFormat()->getPicture()->getImageTransform()->addTintEffect(210, 35);
$hslFrame = $slide->getShapes()->addPictureFrame(ShapeType::Rectangle, 120, 170, 180, 120, $image);
$hslFrame->getPictureFormat()->getPicture()->getImageTransform()->addHSLEffect(30, 20, -10);
$replacementFrame = $slide->getShapes()->addPictureFrame(ShapeType::Rectangle, 320, 170, 180, 120, $image);
$colorReplacement = $replacementFrame->getPictureFormat()->getPicture()->getImageTransform()->addColorReplaceEffect();
$colorReplacement->getColor()->setColor(new Java("java.awt.Color", 100, 149, 237));
$presentation->save("color-transformations.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
Az addColorReplaceEffect minden pixel színét egy fix színre cseréli, miközben megtartja az alfat. Ez eltér az addColorChangeEffect-tól, amely egy forrás‑színt egy másikra map‑olja, és mind a forrás, mind a cél színformátumát feltárja.
Elmosás, átlátszóság és alfa hatások hozzáadása
addBlurEffect minden színcsatornát, köztük az alfat is érinti. Állítsa a grow‑t true‑ra, ha az elmosott él a kép eredeti határain túl is nyúlhat.
Egységes átlátszósághoz használja a addAlphaModulateFixedEffect-et. Ez minden meglévő alfa‑értéket megszoroz, így a részben átlátszó pixelek arányosan különböznek. Az addAlphaReplaceEffect ezzel szemben egyetlen alfa‑értéket ad minden pixelnek. Az addAlphaBiLevelEffect két szintre konvertálja az alfat egy küszöb alapján.
use aspose\slides\Images;
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;
use aspose\slides\ShapeType;
$presentation = new Presentation();
try {
$slide = $presentation->getSlides()->get_Item(0);
$sourceImage = Images::fromFile("photo.png");
try {
$image = $presentation->getImages()->addImage($sourceImage);
} finally {
if (!java_is_null($sourceImage)) {
$sourceImage->dispose();
}
}
$blurredFrame = $slide->getShapes()->addPictureFrame(ShapeType::Rectangle, 20, 20, 200, 140, $image);
$blur = $blurredFrame->getPictureFormat()->getPicture()->getImageTransform()->addBlurEffect(4.5, true);
$blur->setRadius(5);
$transparentFrame = $slide->getShapes()->addPictureFrame(ShapeType::Rectangle, 240, 20, 200, 140, $image);
$alphaModulate = $transparentFrame->getPictureFormat()->getPicture()->getImageTransform()->addAlphaModulateFixedEffect(65);
$alphaModulate->setAmount(60);
$uniformAlphaFrame = $slide->getShapes()->addPictureFrame(ShapeType::Rectangle, 20, 180, 200, 140, $image);
$uniformAlphaFrame->getPictureFormat()->getPicture()->getImageTransform()->addAlphaReplaceEffect(55);
$binaryAlphaFrame = $slide->getShapes()->addPictureFrame(ShapeType::Rectangle, 240, 180, 200, 140, $image);
$alphaBiLevel = $binaryAlphaFrame->getPictureFormat()->getPicture()->getImageTransform()->addAlphaBiLevelEffect(50);
$alphaBiLevel->setThreshold(45);
$binaryAlphaFrame->getPictureFormat()->getPicture()->getImageTransform()->addAlphaInverseEffect();
$presentation->save("blur-and-alpha-effects.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
Más paraméter‑szabad alfa műveletek közé tartozik az addAlphaCeilingEffect, amely minden nem nulla alfat teljesen átlátszatlanná teszi; az addAlphaFloorEffect, amely minden 100 % alatti alfat teljesen átlátszóvá alakít; és az addAlphaInverseEffect, amely az alfat 100% - alpha értékre változtatja.
Rendezett hatáslánc felépítése
Minden add...Effect metódus új műveletet fűz a gyűjtemény végéhez. A renderelő a gyűjteményt rendezett csővezeték‑ként használja: a 0. művelet kimenete lesz az 1. művelet bemenete, és így tovább. Ennek következtében ugyanazok a műveletek különböző sorrendben más képet eredményezhetnek.
Például a szürkeárnyalat után a színárnyalat előbb eltávolítja a kromatikus információt, majd színezze át a fényerő eredményét. A színárnyalat szürkeárnyalat után pedig visszaállítja az eredetit. Hasonlóképpen, az alfa‑cserélés felülírhatja a korábbi műveletek által számított alfa‑értékeket, míg az alfa‑moduláció megőrzi azok relatív különbségeit.
Az alábbi példa egy négy műveletből álló láncot épít, PPTX‑ként menti, újra megnyitja a prezentációt, ellenőrzi a művelettípusokat és a sorrendet, majd a megnyitott eredményt rendereli:
use aspose\slides\ImageFormat;
use aspose\slides\Images;
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;
use aspose\slides\ShapeType;
$presentation = new Presentation();
try {
$slide = $presentation->getSlides()->get_Item(0);
$sourceImage = Images::fromFile("photo.png");
try {
$image = $presentation->getImages()->addImage($sourceImage);
} finally {
if (!java_is_null($sourceImage)) {
$sourceImage->dispose();
}
}
$pictureFrame = $slide->getShapes()->addPictureFrame(ShapeType::Rectangle, 50, 50, 400, 260, $image);
$imageTransform = $pictureFrame->getPictureFormat()->getPicture()->getImageTransform();
$imageTransform->addGrayScaleEffect();
$imageTransform->addTintEffect(220, 25);
$imageTransform->addBlurEffect(2.5, false);
$imageTransform->addAlphaModulateFixedEffect(80);
$presentation->save("image-transform-chain.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
$reopenedPresentation = new Presentation("image-transform-chain.pptx");
try {
$reopenedShape = $reopenedPresentation->getSlides()->get_Item(0)->getShapes()->get_Item(0);
if (java_instanceof($reopenedShape, new JavaClass("com.aspose.slides.PictureFrame"))) {
$reopenedTransform = $reopenedShape->getPictureFormat()->getPicture()->getImageTransform();
$orderIsPreserved = java_values($reopenedTransform->size()) === 4 &&
java_instanceof($reopenedTransform->get_Item(0), new JavaClass("com.aspose.slides.GrayScale")) &&
java_instanceof($reopenedTransform->get_Item(1), new JavaClass("com.aspose.slides.Tint")) &&
java_instanceof($reopenedTransform->get_Item(2), new JavaClass("com.aspose.slides.Blur")) &&
java_instanceof($reopenedTransform->get_Item(3), new JavaClass("com.aspose.slides.AlphaModulateFixed"));
echo $orderIsPreserved ? "The effect chain was preserved." : "The effect chain changed during the round trip.";
$renderedSlide = $reopenedPresentation->getSlides()->get_Item(0)->getImage();
try {
$renderedSlide->save("reopened-effect-chain.png", ImageFormat::Png);
} finally {
if (!java_is_null($renderedSlide)) {
$renderedSlide->dispose();
}
}
} else {
echo "The reopened shape is not a picture frame.";
}
} finally {
$reopenedPresentation->dispose();
}
A gyűjtemény nem kényszerít kompatibilitási mátrixot, amely szín‑, alfa‑ és elmosás‑műveleteket külön láncokra korlátozna. Kombinálhatók, bár a kombinációk nem mindig hasznosak. Egy fix színcsere eltávolítja az előző színhatások által előállított RGB‑variációt; a szürkeárnyalat duotone után eltávolítja a két kiválasztott színt; és az alfa‑ceiling, floor, replace vagy bi‑level műveletek eldobhatják a korábban létrehozott alfa‑részleteket. Építse fel a láncot a kívánt pixel‑feldolgozási sorrendnek megfelelően, ne pedig rendezetlen formázási jelzők halmazaként tekintse.
Szerkeszthető és hatékony értékek vizsgálata
Egy szerkeszthető művelet az a objektum, amely a Picture::getImageTransform‑ban van tárolva. A hatástól függően közvetlenül is ki lehet tépni a változtatható tagokat. Például a Blur a radius és grow értékeket írhatóvá teszi, az AlphaModulateFixed a amount‑ot, az AlphaBiLevel a threshold‑t; a Duotone pedig módosítható ColorFormat objektumokat ad.
Néhány művelet, például a Luminance, HSL, Tint és AlphaReplace, nem teszi elérhetővé a létrehozási skálákat írható tulajdonságként. Ezek beállításához távolítsa el a műveletet, és a kívánt pozícióban adjon hozzá egy újat.
Az getEffective() által visszaadott hatékony adat kiszámított és csak olvasható. Hasznos a témához kötött színek feloldásához és a renderelő által használt normalizált értékek olvasásához, de nem egy újabb szerkesztő felület. Az alábbi példa felsorolja a láncot, és ahol az API biztosítja, ellenőrzi a hatékony értékeket:
use aspose\slides\Presentation;
$presentation = new Presentation("image-transform-chain.pptx");
try {
$slide = $presentation->getSlides()->get_Item(0);
$pictureFrame = null;
$shapeCount = java_values($slide->getShapes()->size());
for ($index = 0; $index < $shapeCount; $index++) {
$shape = $slide->getShapes()->get_Item($index);
if (java_instanceof($shape, new JavaClass("com.aspose.slides.PictureFrame"))) {
$pictureFrame = $shape;
break;
}
}
if ($pictureFrame !== null) {
$imageTransform = $pictureFrame->getPictureFormat()->getPicture()->getImageTransform();
$effectCount = java_values($imageTransform->size());
for ($index = 0; $index < $effectCount; $index++) {
$operation = $imageTransform->get_Item($index);
echo $index . ": " . java_values($operation->getClass()->getSimpleName()) . PHP_EOL;
if (java_instanceof($operation, new JavaClass("com.aspose.slides.Luminance"))) {
$data = $operation->getEffective();
echo " Brightness: " . java_values($data->getBrightness()) . PHP_EOL;
echo " Contrast: " . java_values($data->getContrast()) . PHP_EOL;
} elseif (java_instanceof($operation, new JavaClass("com.aspose.slides.Duotone"))) {
$data = $operation->getEffective();
echo " Dark color: " . java_values($data->getColor1()->toString()) . PHP_EOL;
echo " Light color: " . java_values($data->getColor2()->toString()) . PHP_EOL;
} elseif (java_instanceof($operation, new JavaClass("com.aspose.slides.ColorReplace"))) {
$data = $operation->getEffective();
echo " Replacement color: " . java_values($data->getColor()->toString()) . PHP_EOL;
} elseif (java_instanceof($operation, new JavaClass("com.aspose.slides.HSL"))) {
$data = $operation->getEffective();
echo " HSL: " . java_values($data->getHue()) . ", " . java_values($data->getSaturation()) . ", " . java_values($data->getLuminance()) . PHP_EOL;
} elseif (java_instanceof($operation, new JavaClass("com.aspose.slides.Tint"))) {
$data = $operation->getEffective();
echo " Tint: " . java_values($data->getHue()) . ", " . java_values($data->getAmount()) . PHP_EOL;
} elseif (java_instanceof($operation, new JavaClass("com.aspose.slides.Blur"))) {
$data = $operation->getEffective();
echo " Blur radius: " . java_values($data->getRadius()) . " pt" . PHP_EOL;
} elseif (java_instanceof($operation, new JavaClass("com.aspose.slides.AlphaModulateFixed"))) {
$data = $operation->getEffective();
echo " Alpha amount: " . java_values($data->getAmount()) . "%" . PHP_EOL;
} elseif (java_instanceof($operation, new JavaClass("com.aspose.slides.AlphaReplace"))) {
$data = $operation->getEffective();
echo " Replacement alpha: " . java_values($data->getAlpha()) . "%" . PHP_EOL;
} elseif (java_instanceof($operation, new JavaClass("com.aspose.slides.AlphaBiLevel"))) {
$data = $operation->getEffective();
echo " Alpha threshold: " . java_values($data->getThreshold()) . "%" . PHP_EOL;
}
}
}
} finally {
$presentation->dispose();
}
Paraméter‑szabad hatások, például a szürkeárnyalat, alfa‑ceiling és alfa‑inverse, szintén rendelkeznek hatékony‑adat objektummal, de nincs kiírható skáláris beállításuk. Jelenlétük és pozíciójuk a gyűjteményben a fontos információ.
Képtranszformációk eltávolítása vagy törlése
Használja az ImageTransformOperationCollection::removeAt metódust egy művelet index szerinti eltávolításához. Mivel az indexek az eltávolítás után eltolódnak, előbb keresse meg a célpontot, majd a felsorolás után távolítsa el. Az ImageTransformOperationCollection::clear minden láncot eltávolít.
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;
$presentation = new Presentation("image-transform-chain.pptx");
try {
$slide = $presentation->getSlides()->get_Item(0);
$pictureFrame = null;
$shapeCount = java_values($slide->getShapes()->size());
for ($index = 0; $index < $shapeCount; $index++) {
$shape = $slide->getShapes()->get_Item($index);
if (java_instanceof($shape, new JavaClass("com.aspose.slides.PictureFrame"))) {
$pictureFrame = $shape;
break;
}
}
if ($pictureFrame !== null) {
$imageTransform = $pictureFrame->getPictureFormat()->getPicture()->getImageTransform();
$effectCount = java_values($imageTransform->size());
$blurIndex = -1;
for ($index = 0; $index < $effectCount; $index++) {
if (java_instanceof($imageTransform->get_Item($index), new JavaClass("com.aspose.slides.Blur"))) {
$blurIndex = $index;
break;
}
}
if ($blurIndex >= 0) {
$imageTransform->removeAt($blurIndex);
echo "The blur operation was removed." . PHP_EOL;
}
$imageTransform->clear();
echo "Remaining operations: " . java_values($imageTransform->size()) . PHP_EOL;
$presentation->save("image-transforms-cleared.pptx", SaveFormat::Pptx);
}
} finally {
$presentation->dispose();
}
Az eltávolítás vagy törlés csak a kép formázását változtatja meg. Nem törli, nem tömöríti újra, és nem módosítja a újrahasznált PPImage forrás erőforrást.
Értékelje a bemutató formátumokat és exportcélokat
A képtranszformációk a DrawingML‑ből származnak, ezért a PPTX a legjobb szerkeszthető formátum a hatásláncokhoz. Még PPTX esetén sem minden művelet rendelkezik azonos hordozhatósággal:
- A szabványos DrawingML műveletek, mint a luminance, grayscale, duotone, tint, HSL, blur és a gyakori alfa műveletek a legnagyobb eséllyel maradnak meg egy PPTX körkörös úton. Mindig nyissa meg újra a generált fájlt, és ellenőrizze a gyűjmentét, ha a megőrzés kötelező.
- A bináris PPT formátum a teljes DrawingML hatásmodellt megelőzi. PPT‑re mentéskor a nem támogatott műveletek kihagyhatók, a lánc egy támogatott részhalmazra szűkülhet, vagy a megjelenést csak közelítheti. Ne használja a PPT‑t ellenőrző formátumként egy összetett szerkeszthető lánchoz.
- PNG, JPEG, TIFF, PDF, SVG, HTML vagy más vizuális kimenet a támogatott láncot alkalmazza a renderelt megjelenésre. Ezek a kimenetek nem tartalmaznak szerkeszthető
ImageTransformOperationCollection‑t; a raszteres formátumok a végeredményt pixelekbe lapítják, a dokumentum‑ vagy vektoral exportok saját renderelési reprezentációt tárolnak. - A hatások nem teszik önállóvá a hivatkozott képet. Egy hivatkozott kép renderelése továbbra is azon a forráson múlik, amelynek elérhetőnek kell lennie a prezentáció betöltésekor.
Különböző prezentáció‑fogyasztók esetleg eltérően renderelhetik a szélsőséges eseteket, különösen ha több alfa vagy szín‑kvantáló művelet van kombinálva. Kritikus kimeneteknél tesztelje mind a szerkeszthető körkörös út, mind a végső export formátumot ugyanazzal az Aspose.Slides verzióval, amelyet a termelésben használ.
GYIK
Módosítják a képtranszformációs hatások a beágyazott kép adatokat?
Nem. A műveletek a képkitöltéshez tartozó Picture‑hez tartoznak. Az alapul szolgáló PPImage byte‑jai változatlanok maradnak.
Két olyan képkeret, amely ugyanazt a képet használja, megosztja a hatásait?
Nem. A PPImage újrahasználata elkerüli a duplikált képadatot, de minden képkeret általában saját Picture‑t és saját transzformációs gyűjteményt kap.
Kombinálhatók a szín, elmosás és alfa hatások?
Igen. A gyűjtemény egyetlen rendezett láncban fogadja őket. Fontolja meg, hogy az egyes műveletek hogyan befolyásolják az előző kimenetét, mivel a csere‑ és küszöb‑műveletek eldobhatják a korábbi szín‑ vagy alradetailt.
Miért csak olvashatóak a hatékony értékek?
A hatékony adatok a rendereléshez használt kiszámított értékeket tartalmazzák, beleértve a feloldott színeket is. Szerkessze a transzformációs gyűjteményben tárolt műveletet, ahol elérhetők a írható tagok; egyébként távolítsa el, és adjon hozzá újat az új létrehozási paraméterekkel.
Melyik formátumot használjam a transzformációs lánc megőrzéséhez?
Használja a PPTX‑et, és ellenőrizze a fájlt újra megnyitva. A régi PPT nem tudja teljes mértékben ábrázolni a DrawingML hatásmodellt, mígy a renderelt export formátumok csak a megjelenést, nem pedig a szerkeszthető transzformációs műveleteket őrzik meg.