Skip to content
Plume Visuals
← Back
Getting startedBeginner6 min read· Published on October 21, 2026

Show base64 images in Power BI, even beyond 32,766 characters

Get started with Image Plume: prepare a table of base64 images, split long images into chunks, insert the visual, pick size, position and a round mask.

Lire en français

In short

What is a base64 image? An image (PNG, JPEG, SVG…) can be written as a long text: that is base64. With data:image/png;base64, in front, the text becomes a data URI, which the visual shows without downloading anything. Images then travel inside the Power BI model: they show offline, in a PDF export and in the service, with no link to a website and no access rights to manage.

A tiny example. Your company's 3 KB logo becomes a text of about 4,000 characters; a 60 KB photo, a text of about 80,000 characters. Power BI cuts every column text at 32,766 characters: the photo must be split into three chunks, which the visual joins back.

  • What the visual does. Image Plume shows the base64 images of a column or a measure, one image or a gallery (one image per product, place or person), joins images split into chunks, positions and sizes the image, clips it to a shape (rounded corners, circle, 153 shapes or your SVG ★), sets the opacity, brightness and contrast, and filters the report on click.
  • When to use it. Product photos, customer or store logos, portraits, status icons, floor plans, before / after pictures, a slideshow from one year to the next.
  • When to use something else. A fixed image that never changes: the native Image visual is enough (if a web address or an upload is fine for you). An icon inside a table cell: Table Plume.
  • What you will be able to do. Prepare a table of images, split long images, insert the visual, show a gallery, pick the size and position, turn images into circles.
  • What you need: Power BI Desktop, the Image Plume visual installed (see the shared basics), a few images. The PlumeImage-Sample-EN sample report, in your Downloads area, shows 8 places as a gallery and as a featured image (page 1), a slideshow by year, round portraits and shapes (page 2), and the ★ features: carousel, before / after, light by score, filters, magnifier (page 3).

The data to provide

The shape. One row per image: a key (the name of the product, the place…), the base64 text of the image and, if you like, a caption. An image longer than 32,766 characters takes several rows: one per chunk, with its number in a Chunk index column.

PlaceChunk indexImageCaption
Arcachon1iVBORw0KGgoAAAANSUhEUgAA… (30,000 characters)Bay and stilt huts
Arcachon2…rest of the image…Bay and stilt huts
Arcachon3…end of the image…Bay and stilt huts
Sarlat1iVBORw0KGgoAAAANSUhEUgAA…Medieval town
Sarlat2…end of the image…Medieval town

Load a folder of images with Power Query. Home › Get data › Folder, pick the folder of your images, then Transform data and, in Home › Advanced editor, replace the query with:

let
    Source   = Folder.Files("C:\Images"),
    Bin      = Table.AddColumn(Source, "B64", each Binary.ToText([Content], BinaryEncoding.Base64), type text),
    // 30,000-character chunks: below the 32,766 limit of Power BI texts
    Chunks   = Table.AddColumn(Bin, "Chunks", each
                 let t = [B64], n = Number.RoundUp(Text.Length(t) / 30000)
                 in  Table.FromColumns({ {1..n}, List.Transform({0..n - 1}, (i) => Text.Middle(t, i * 30000, 30000)) },
                                       { "Chunk index", "Chunk" })),
    Keep     = Table.SelectColumns(Chunks, { "Name", "Chunks" }),
    Rows     = Table.ExpandTableColumn(Keep, "Chunks", { "Chunk index", "Chunk" }),
    Types    = Table.TransformColumnTypes(Rows, { { "Chunk index", Int64.Type }, { "Chunk", type text } })
in
    Types

You get a table with Name (the file name: the key), Chunk index and Chunk. The base64 is "raw" (without data:image/png;base64,): the visual recognizes the image type from its first bytes.

To try without a file. Modeling › New table, then paste (two SVG icons, short enough to fit on one row each):

Icons =
DATATABLE (
    "Status", STRING, "Image", STRING,
    {
        { "OK", "data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxMDAgMTAwJz48Y2lyY2xlIGN4PSc1MCcgY3k9JzUwJyByPSc0NicgZmlsbD0nIzJFN0Q0RicvPjwvc3ZnPg==" },
        { "Alert", "data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxMDAgMTAwJz48Y2lyY2xlIGN4PSc1MCcgY3k9JzUwJyByPSc0NicgZmlsbD0nI0MwMzkyQicvPjwvc3ZnPg==" }
    }
)

Pitfalls.

  • A web address (https://…/logo.png) is never loaded: it is a Microsoft certification rule (no network request). The visual says so in edit mode; convert the image to base64.
  • Without Chunk index, Power BI keeps only the first 32,766 characters: the image is cut or unreadable.
  • The image column can go into Image as it is (no sum or "First" to pick); a measure that returns the image text works too.
  • One key per image: without Image key, all the chunk rows form a single image.
  1. In the Visualizations pane, click the Image Plume icon. An empty frame appears, with a landing page that lists the fields to drop.
  2. Drag the Chunk (or Image) column into Image (base64). A first image shows, maybe cut if it is long.
  3. Drag Chunk index into Chunk index: the whole image shows.
  4. Drag Name (or Place) into Image key (category): the visual shows the first image; this is the Single image mode, which follows the report filters.
  5. Open Format › Layout › Display and pick Grid (gallery): one cell per image, with the key as a caption under each image.
  6. In Format › Position and size › Size, pick Fill (crop): every cell is full; the Position picks the part of the image that stays visible.
  7. In Format › Mask (clipping), pick Ellipse or circle: each image becomes a circle.
  8. In Format › Outline and shadow, turn on Outline, set Width (px) = 3 and Color (empty = accent) = white: the outline follows the circle.
  9. Click an image: the other visuals of the page are filtered on this key (cross-filtering, see the glossary) and the other images fade. Click an empty area of the visual to undo.
  10. Hover an image: the tooltip gives the key, the Tooltips fields and the image size in pixels.

Expected result: a gallery of your images as circles with an outline, a caption under each one, filtering the page on click, with no watermark (all these features are free).

Troubleshooting

What you seeLikely causeFix
Image cut at the bottom or a gray placeholderText truncated at 32,766 charactersSplit into chunks and add Chunk index
"Embedded images only: web addresses are never loaded"The column holds http(s) addressesConvert the images to base64 (Power Query above)
"Unrecognized image"The text is not an image (space, quotes, other format)Check the column; accepted formats: PNG, JPEG, GIF, WebP, BMP, SVG
One image instead of a gallerySingle image mode, or no Image keyFormat › Layout › Display › Grid (gallery) and add the key
All images mixed into oneChunks of several images with no keyAdd the key (file name) to Image key (category)
"Missing chunks for …" in edit modeA chunk number is missing (filter, deleted row)Check the table: the numbers must follow each other
"+N images not shown"More images than Maximum number of imagesRaise the setting (500 at most) or filter
"Premium preview" watermarkA ★ feature is used without a keyKey in Format › Plume Studio License, or a free setting

Key takeaways

  • Base64 images or data URIs only: no web address, so everything shows offline and in PDF.
  • Beyond 32,766 characters: one row per chunk and the Chunk index field.
  • Image key = one image per value, click to filter, gallery.
  • Position, size, circle, 22 shapes, outline, opacity, brightness, contrast, grayscale: free; slideshow (play axis), shadow, saturation, blur, rotation and flips: ★.

Going further