With high DPI display support, application interfaces appear sharper, but bitmap image formats such as BMP, JPG, and PNG can become blurry when scaled. Therefore, this release supports the SVG (Scalable Vector Graphics) format to ensure images remain crisp across different resolutions and DPI settings.
-
The Picture control, PictureButton control, and bitmap method in Form support using the SVG image.
-
The Picture object and bitmap method in Report support using the SVG image.
-
In the "Select Image" dialog on the property panel, you can choose "Use a custom image" and then select an SVG image file.
Note
The built-in images provided by the system are NOT SVG format. You can replace them with the SVG images prepared by yourself if you want to display them clearly under high DPI displays.
-
If
OriginalSizeis checked, the control size automatically matches the original dimensions of the SVG file; if unchecked, the control keeps its existing size. -
The following runtime file is required for SVG image to work: pbsvg.dll.
Supported and unsupported features
The SVG support in PowerBuilder/InfoMaker is implemented using the open-source Skia graphics library, which provides partial compliance with the SVG 1.1 and SVG 2.0 specifications.
The supported SVG features include:
-
Basic shapes: <circle>, <ellipse>, <line>, <polygon>, <polyline>, <path>, <rect>
-
Text elements: <text>, <textPath>, <tspan>
-
Structural elements: <g>, <use>, <defs>
-
Gradients and patterns: <linearGradient>, <radialGradient>, <stop>, <pattern>
-
Filter effects: <filter> with primitives like <feGaussianBlur>, <feColorMatrix>, <feMerge>, <feOffset>, <feTurbulence>, and lighting effects
-
Masking and clipping: <mask>, <clipPath>
Each element supports commonly used attributes such as fill, stroke, stroke-width, positioning, and transformation.
Because the implementation is based on Skia, any SVG elements or attributes not supported by Skia are also not supported in PowerBuilder/InfoMaker.
The unsupported SVG features include:
-
Fill and gradients
fill="transparent" is not supported; use fill="none" or fill="rgba(0,0,0,0) instead.
Incomplete support for gradientUnits="userSpaceOnUse".
-
Filters and effects
Advanced filters such as <filter>, <feGaussianBlur>, <feColorMatrix>, lighting effects, etc.
-
Interactivity and animation
JavaScript events (onclick, onmouseover, etc.).
<animate> and <animateTransform> animations.
-
Text and fonts
<textPath> for text along a path.
Embedded SVG fonts (<font>, <glyph>).
-
Clipping and masking
Complex use of <clipPath> and <mask>.
-
External references
External resources via xlink:href (e.g., linked CSS).
<image> referencing external images.
<foreignObject> embedding non-SVG content.
Some advanced <defs> elements (inline styles, CDATA).
Limitations
Despite the added support, there are several important limitations:
-
Not all built-in control images have been converted to SVG format; as a result, some built-in control images may still appear blurry under high DPI displays.
-
Unsupported features
The icon property of Application does not support SVG.
DataWindow/Report OLE objects, large binary/text database OLE objects, and large binary/text database BLOB objects do not support SVG.
The SVG image will not appear dimmed or grayed out when the control is disabled (it always appears in normal color no matter the control is enabled or disabled).
-
PDF export and print
When using NativePDF export, SVG images are converted to bitmap format. Features like resolution-independent scaling are not preserved.
Although SVG images display correctly in Window/Form and DataWindow/Report controls, printing does not preserve the original vector properties. SVG images are rendered as bitmaps, meaning they lose scalability and may not maintain quality when zoomed.


