För att diagnostisera en Affinity SVG som ser suddig eller oväntat fylld ut isolerar du en berörd kurva, jämför rasteriseringsinställningarna och granskar sedan dess fyllning och fyllningsläge. De här testerna hjälper till att skilja exportbegränsningar från objektinställningar och skillnader i appen som tar emot filen.

Den här guiden handlar om att exportera en vektorritning från den aktuella Affinity-datorappen på en Mac och kontrollera hur den ser ut i en webbläsare eller ett annat datorprogram. Menysökvägarna följer det aktuella Affinity Help Center. Äldre versioner av Affinity Designer kan ha andra menyplaceringar.

Börja med en kurva och en kontrollerad export

Spara en arbetskopia av Affinity-dokumentet. Välj en kurva där problemet syns tydligt och skriv ner det förväntade resultatet, till exempel ”en blå böjd konturlinje utan fyllning inuti” eller ”en fylld ring med genomskinligt centrum”. Då blir det enklare att bedöma varje test utan att ändra flera orelaterade egenskaper.

Öppna File > Export > Export, välj SVG som filformat och granska inställningarna till höger. Fler kontroller visas under Advanced. Om du vill isolera ett objekt väljer du Area: Selection Only. Selection Area tar även med överlappande lager. Affinity beskriver skillnaderna i hjälpen för exportdialogrutan.

Exportera en grundversion innan du ändrar något. Öppna den i Safari och i appen där du upptäckte problemet. Jämför samma område vid ungefär samma visningsstorlek och förstora det sedan. Anteckna om felet syns i båda apparna, bara i målappen eller redan i Affinitys exportförhandsvisning.

Se jämförelsen som ett diagnostiskt hjälpmedel. Om två visningsprogram visar samma sak blir det mer sannolikt att du undersöker innehållet i den exporterade filen, men jämförelsen fastställer inte i sig orsaken. Om programmen visar olika saker får du en mer avgränsad kompatibilitetsfråga att undersöka.

Synligt symtom Första test Vad resultatet hjälper dig att skilja åt
En kurva blir mjuk när den förstoras Jämför rasteriseringsinställningarna Rasteriserat innehåll kontra bevarad geometri
En böjd konturlinje får en fylld insida Granska det markerade objektets fyllning Oönskad fyllning kontra konturlinjens utseende
Ett hål försvinner eller en överlappning fylls Jämför fyllningslägena Olika definitioner av formens insida
Bara en viss app visar filen fel Testa en förenklad kopia Målappens hantering kontra ett allmänt exportproblem

Varför kan en SVG innehålla suddiga kurvor?

Att en fil har SVG-ändelse betyder inte att alla objekt i den förblir skalbara vektorer. Affinity påpekar uttryckligen att rasterobjekt i SVG-filer fortfarande försämras när de ändrar storlek. I dokumentationen om att arbeta med SVG-filer rekommenderar Affinity också att webbgrafik placeras på hela pixlar för att se skarp ut.

Börja med att fråga dig om oskärpan påverkar hela ritningen eller bara ett objekt med effekter. Om en enkel kurva förblir skarp intill ett suddigt objekt behöver du undersöka något annat än om varje element i ritningen blir suddigt. Använd den observationen för att avgöra vilket objekt du ska isolera härnäst.

Jämför de tre rasteriseringsalternativen

Affinitys inställningar för SVG-export innehåller tre alternativ för Rasterize: Nothing utför ingen rasterisering vid export och utesluter element som inte stöds, Unsupported properties rasteriserar element som inte stöds och Everything rasteriserar alla element. Därför kan Nothing ta bort innehåll i stället för att bevara dess utseende som vektorer. Se Export Settings.

Gör separata exporter med Unsupported properties och Nothing och låt området och de övriga inställningarna vara oförändrade. Jämför den berörda kurvan, dess utsmyckning och eventuellt innehåll som saknas. Använd filnamn som visar vilken inställning du ändrade så att jämförelsen går att följa.

Om det berörda innehållet försvinner med Nothing stämmer resultatet med den dokumenterade begränsningen för innehåll som inte stöds. Då kan du förenkla det isolerade objektet och göra om testet. Det visar inte att hela det ursprungliga objektet var kompatibelt med vektorexport.

Om en enkel version av kurvan exporteras korrekt återställer du formateringen en ändring i taget. Avbryt när symtomet återkommer. På så sätt kan du hitta en mindre kombination som återskapar problemet, utan att anta att alla effekter, penslar eller objektarrangemang exporteras på samma sätt.

Välj mellan att bevara utseendet och att bevara geometrin

För rasterinnehåll som behålls styr Raster DPI upplösningen hos rasteriserade effekter. Downsample images kan minska bildernas rasterupplösning. Allow JPEG compression och inställningen Quality påverkar rasteriserat innehåll. Use tile patterns kan placera ett rasteriserat område i en vektorform fylld med en bitmapp, med begränsat stöd i vissa appar. Detta beskrivs i Export Settings.

Inaktivera nedsampling och JPEG-komprimering i en diagnostisk export och jämför samma objekt igen. Om du behåller ett rasteriserat utseende ska du bedöma det i den avsedda slutstorleken. Högre rasterupplösning återskapar inte en redigerbar kurva; den påverkar rasterdelen av resultatet.

Om utdata måste bevara skalbar geometri förenklar eller bygger du om det problematiska utseendet med vektorobjekt och gör sedan om den isolerade exporten. Målet är en export som innehåller den avsedda grafiken och fungerar korrekt när den förstoras. En fil med saknad utsmyckning har inte nått det målet bara för att de kurvor som finns kvar är skarpa.

Varför får en öppen kurva en oväntad fyllning?

En kurva kan ha både en konturlinje och en fyllning. SVG fyller öppna delkurvor som om en avslutande linjesträcka förband ändpunkterna. Det kan skapa en kil eller ett stort fyllt område trots att den synliga konturlinjen fortfarande är öppen. SVG anger också svart som det ursprungliga fyllningsvärdet, och fyllningen ärvs. Dessa beteenden specificeras i SVG 1.1: Painting.

Markera den berörda kurvan och öppna Window > General > Color. Aktivera väljaren Fill och välj rutan None om den avsedda grafiken är en konturlinje utan fyllning inuti. Kontrollera att du ändrade Fill och inte Stroke. Den aktuella dokumentationen för panelen Color beskriver de separata väljarna och rutan None.

Exportera den isolerade kurvan igen. Om fyllningen försvinner kontrollerar du de andra berörda objekten ett i taget innan du exporterar hela ritningen. Tillämpa inte None på alla objekt om inte hela ritningen ska bestå enbart av konturlinjer.

Tänk dig en öppen båge som exempel: konturlinjen löper från den ena ändpunkten till den andra, medan fyllningen kan täcka området mellan bågen och en tänkt rak avslutande linje. Om du tar bort fyllningen försvinner det området direkt. Om du i stället sluter kurvan ändrar du dess geometri och kan lägga till en oönskad konturlinje.

Om den fristående SVG-filen ser korrekt ut i Safari men får en fyllning när en annan app importerar den gör du om testet med en enkel öppen kurva där fyllningen uttryckligen är inställd på None. Då får du en fokuserad jämförelse för målappen. Dra inte slutsatsen enbart utifrån ett svart område att Affinity nödvändigtvis exporterade svart färg.

Varför förändras hål och överlappande områden?

Ett fyllt område i en komplex kurva väcker en annan fråga än en oönskad fyllning i en enkel öppen konturlinje. Affinity har fyllningslägena Alternate och Winding som avgör vilka områden som räknas som insida i en självskärande kurva. När objektet är markerat finns kommandot under Vector > Fill Mode. Se Fill modes.

Alternate räknar om antalet korsningar är udda eller jämnt. Winding använder ett signerat antal som tar hänsyn till banans riktning. I SVG-termer motsvarar dessa evenodd och nonzero. Skillnaden spelar roll för självskärningar och nästlade delkurvor, vilket förklaras i Affinitys hjälp om fyllningslägen och i SVG-specifikationen för fyllningsregler.

Jämför båda lägena på en kopia av det berörda objektet. Granska alla avsedda hål och överlappningar innan du väljer läge. Om du behöver undersöka riktningen beskriver Affinity alternativet Show curve orientation under Settings i snabbmenyn för Pen Tool eller Node Tool. Det visar information som har betydelse för Winding-beteendet. Se Fill modes.

Tänk dig en nästlad kontur som exempel: Alternate kan lämna ett inre område ofyllt eftersom en stråle korsar två gränser. Med Winding beror resultatet på gränsernas riktningar. Om du byter läge kan ett hål återställas samtidigt som en annan överlappning förändras, så bedöm hela objektet i stället för en enda del.

Om inget av lägena ger den avsedda formen går du tillbaka till hur kurvan är konstruerad. Gör de avsedda fyllda områdena och öppningarna tydliga i arbetskopian och exportera sedan igen. Fyllningsläget är en regel för hur geometrin ska tolkas. Det kan inte beskriva en godtycklig samling oberoende valda fyllda och tomma områden.

När bör du expandera en konturlinje eller platta till transformeringar?

Använd Expand Stroke när ett problem som går att återskapa handlar om hur en vektorkonturlinje tolkas. Affinity beskriver hur du markerar objektet med Move Tool eller Node Tool och sedan väljer Vector > Expand Stroke. Kommandot omvandlar konturlinjens gränser till slutna kurvor och rekommenderas särskilt när konturlinjer förbereds för SVG-export. Se Expand stroke.

Behåll det redigerbara originalet och testa en expanderad kopia. Jämför ändpunkter, sammanfogningar, tjocklek och eventuella inneslutna områden innan du exporterar. Expandering ändrar objektets struktur, så ett lyckat test bör både bevara det avsedda utseendet och lösa problemet i målappen.

Det finns två dokumenterade begränsningar: en expanderad konturlinje går inte längre att redigera med sitt ursprungliga verktyg, och konturlinjer som skapats med pixelbaserade penslar kan inte expanderas eftersom de är rasterbaserade. Expandering är alltså en metod som stöds för vektorkonturlinjer, men den är ingen allmän konvertering från bitmapp till vektor. Se Expand stroke.

Vid avvikelser som gäller transformerade objekt kan du testa Flatten transforms separat. Affinity uppger att det här kommandot låser transformerade objekt i den exporterade filen för att förbättra visningsprecisionen i olika appar. Det är ett kompatibilitetstest med ett specifikt syfte, inte en universallösning för oskärpa eller fyllningar. Se Export Settings.

Kontrollera hela ritningen innan du behåller ändringen

När det isolerade objektet har exporterats korrekt gör du om exporten med hela dokumentet eller ritytan som avsett. Granska filen både i den faktiska visningsstorleken och förstorad, i Safari och i målappen. Kontrollera den tidigare suddiga kurvan, öppna konturlinjer, genomskinliga hål, överlappningar och omkringliggande grafik.

Anteckna kort vilken ändring som löste symtomet: att ta bort en oavsiktlig fyllning, välja rätt fyllningsläge, förenkla ett utseende som inte stöds, behålla en rasterdel med lämplig upplösning, expandera en vektorkonturlinje eller platta till transformeringar. Då blir resultatet möjligt att återskapa utan att en inställning som fungerade görs till en regel för alla ritningar.

Den färdiga SVG-filen bör bevara den avsedda grafiken, och eventuellt rasterinnehåll som behålls ska vara begripligt och godtagbart i den storlek som krävs. Spara den redigerbara Affinity-filen tillsammans med den kontrollerade exporten så att framtida ändringar kan utgå från originalkurvorna.

Källor