我目前在我的iOS应用程序中使用SVG资源。资源已设计为使用Display P3颜色空间。当资源加载并显示在SwiftUI Image中时,它们似乎使用sRGB颜色空间而不是P3。我看不到一种方法来指定要在资源目录中使用的颜色空间,也看不到Image上的任何函数来指定此颜色空间。有没有办法做到这一点,或者我需要回到使用PNG?
fdx2calv1#
您需要进入SVG文件,并将基于十六进制的颜色更改为使用P3颜色,如下图所示:
<?xml version="1.0" encoding="UTF-8"?> <svg id="empty_groups" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"> <defs> <style> .cls-1 { fill: color(display-p3 0.93 0.42 0.35); } .cls-2 { fill: color(display-p3 1.00 0.91 0.90); } .cls-3 { fill: color(display-p3 1.00 0.73 0.70); } </style> </defs> <circle class="cls-2" cx="51.49" cy="50" r="47.5"/> <rect class="cls-3" x="3.52" y="21.42" width="71.92" height="25.18" rx="5.3" ry="5.3"/> <path class="cls-1" d="m67.96,43.35H6.63c-3.34,0-6.05-2.71-6.05-6.05v-14.58c0-3.34,2.71-6.05,6.05-6.05h61.32c3.34,0,6.05,2.71,6.05,6.05v14.58c0,3.34-2.71,6.05-6.05,6.05ZM6.63,18.17c-2.51,0-4.55,2.04-4.55,4.55v14.58c0,2.51,2.04,4.55,4.55,4.55h61.32c2.51,0,4.55-2.04,4.55-4.55v-14.58c0-2.51-2.04-4.55-4.55-4.55H6.63Z"/> <rect class="cls-1" x="5.7" y="21.52" width="16.98" height="16.98" rx="3.07" ry="3.07"/> <rect class="cls-1" x="27.05" y="26.58" width="16.97" height="1.59" rx=".63" ry=".63"/> <rect class="cls-1" x="27.05" y="31.85" width="23.46" height="1.59" rx=".63" ry=".63"/> <path class="cls-1" d="m68.37,29.12c.69.4.69,1.39,0,1.79l-2.74,1.58-2.74,1.58c-.69.4-1.55-.1-1.55-.89v-6.34c0-.79.86-1.29,1.55-.89l2.74,1.58,2.74,1.58Z"/> <rect class="cls-3" x="26.74" y="57.4" width="71.92" height="25.18" rx="5.3" ry="5.3"/> <path class="cls-1" d="m91.18,79.33H29.86c-3.34,0-6.05-2.71-6.05-6.05v-14.58c0-3.34,2.71-6.05,6.05-6.05h61.32c3.34,0,6.05,2.71,6.05,6.05v14.58c0,3.34-2.71,6.05-6.05,6.05Zm-61.32-25.18c-2.51,0-4.55,2.04-4.55,4.55v14.58c0,2.51,2.04,4.55,4.55,4.55h61.32c2.51,0,4.55-2.04,4.55-4.55v-14.58c0-2.51-2.04-4.55-4.55-4.55H29.86Z"/> <rect class="cls-1" x="28.93" y="57.5" width="16.98" height="16.98" rx="3.07" ry="3.07"/> <rect class="cls-1" x="50.28" y="62.56" width="16.97" height="1.59" rx=".63" ry=".63"/> <rect class="cls-1" x="50.28" y="67.83" width="23.46" height="1.59" rx=".63" ry=".63"/> <path class="cls-1" d="m91.6,65.09c.69.4.69,1.39,0,1.79l-2.74,1.58-2.74,1.58c-.69.4-1.55-.1-1.55-.89v-6.34c0-.79.86-1.29,1.55-.89l2.74,1.58,2.74,1.58Z"/> </svg>
1条答案
按热度按时间fdx2calv1#
您需要进入SVG文件,并将基于十六进制的颜色更改为使用P3颜色,如下图所示: