R8: View Capture to Bitmap result in White JPGs

Hello Forum!
I don’t know if this is a bug. I have a python script that I used for batch export JPG from layout using capture to bitmap. The script works fine in R7, but in Rhino 8 it produces only white images (sizes and dpi remains correct).

This is a simplified script. Thanks in advance for anyone chipping in :slight_smile:

# -*- coding: utf-8 -*-
import scriptcontext as sc
import Rhino, System, os

def export_to_jpg(layouts, folder, dpi=150):
    if not layouts:
        print("No layouts to export to JPG.")
        return

    for layout in layouts:
        layout_name = layout.MainViewport.Name
        filename = "{}.jpg".format(layout_name)
        full_path = os.path.join(folder, filename)

        print("Exporting JPG:", layout_name)

        settings = Rhino.Display.ViewCaptureSettings(layout, dpi)
        bitmap = Rhino.Display.ViewCapture.CaptureToBitmap(settings)

        if bitmap:
            bitmap.SetResolution(dpi, dpi)
            bitmap.Save(full_path, System.Drawing.Imaging.ImageFormat.Jpeg)
            print("✔ JPG saved:", full_path)
        else:
            print("✖ Failed to export JPG:", layout_name)

def main():
    # Get all layouts
    pages = sc.doc.Views.GetPageViews()
    if not pages:
        print("No layouts found.")
        return

    # Default folder = Downloads
    folder_name = os.path.join(os.path.expanduser("~"), "Downloads")

    # Run export
    export_to_jpg(pages, folder_name, dpi=150)

    # Try to open the folder in Explorer/Finder
    try:
        os.startfile(folder_name)
    except:
        pass

if __name__ == "__main__":
    main()

System infos - assuming not that much impact on this, I still work with both R7/R8. Same plugins for both

Rhino 7 SR34 2023-9-24 (Rhino 7, 7.34.23267.11001, Git hash:master @ a37d83041828484840f2448d5b3e3770e46694f9)
License type: Commercial, build 2023-09-24
License details: LAN Zoo Network Node

Windows 11 (10.0.26100 SR0.0) or greater (Physical RAM: 63Gb)

Computer platform: LAPTOP  - Plugged in [97% battery remaining]

Hybrid graphics configuration.
  Primary display: Intel(R) Arc(TM) Pro Graphics (Intel) Memory: 2GB, Driver date: 2-26-2025 (M-D-Y).
    > Integrated graphics device with 4 adapter port(s)
        - Secondary monitor is laptop's integrated screen or built-in port
        - Windows Main Display attached to adapter port #1
        - Secondary monitor attached to adapter port #2
  Primary OpenGL: NVIDIA GeForce RTX 4070 Laptop GPU (NVidia) Memory: 8GB, Driver date: 8-7-2025 (M-D-Y). OpenGL Ver: 4.6.0 NVIDIA 580.97
    > Integrated accelerated graphics device (shares primary device ports)
        - Video pass-through to primary display device

OpenGL Settings
  Safe mode: Off
  Use accelerated hardware modes: On
  Redraw scene when viewports are exposed: On
  Graphics level being used: OpenGL 4.6 (primary GPU's maximum)
  
  Anti-alias mode: 4x
  Mip Map Filtering: Linear
  Anisotropic Filtering Mode: High
  
  Vendor Name: NVIDIA Corporation
  Render version: 4.6
  Shading Language: 4.60 NVIDIA
  Driver Date: 8-7-2025
  Driver Version: 32.0.15.8097
  Maximum Texture size: 32768 x 32768
  Z-Buffer depth: 24 bits
  Maximum Viewport size: 32768 x 32768
  Total Video Memory: 8188 MB

Rhino plugins that do not ship with Rhino
  C:\Program Files\Enscape\Enscape.Rhino.Plugin-net48\Enscape.Rhino7.Plugin.dll	"Enscape.Rhino7.Plugin"	4.5.0.485
  C:\Users\SongR\AppData\Local\MotifPlugins\1.7.1380\RhinoPlugin7\Motif.Plugin.Rhino7.dll	"Motif.Plugin.Rhino7Base"	1.7.1380.0
  C:\Users\SongR\OneDrive - Perkins and Will\Desktop\Script+Tool\blockeditnew20230807\BlockEditNew.rhp	"BlockEdit"	1.0.0.0
  c:\Program Files\Solemma\ClimateStudio\bin\ClimateStudioRhino7.rhp	"ClimateStudioRhino7"	2.1.9190.15522

Rhino plugins that ship with Rhino
  C:\Program Files\Rhino 7\Plug-ins\Commands.rhp	"Commands"	7.34.23267.11001
  C:\Program Files\Rhino 7\Plug-ins\rdk.rhp	"Renderer Development Kit"	
  C:\Program Files\Rhino 7\Plug-ins\RhinoScript.rhp	"RhinoScript"	
  C:\Program Files\Rhino 7\Plug-ins\RPC.rhp	"RPC"	
  C:\Program Files\Rhino 7\Plug-ins\RhinoBonusTools.rhp	"Rhino Bonus Tools"	
  C:\Program Files\Rhino 7\Plug-ins\RhinoRenderCycles.rhp	"Rhino Render"	7.34.23267.11001
  C:\Program Files\Rhino 7\Plug-ins\RhinoRender.rhp	"Legacy Rhino Render"	
  C:\Program Files\Rhino 7\Plug-ins\rdk_etoui.rhp	"RDK_EtoUI"	7.34.23267.11001
  C:\Program Files\Rhino 7\Plug-ins\rdk_ui.rhp	"Renderer Development Kit UI"	
  C:\Program Files\Rhino 7\Plug-ins\NamedSnapshots.rhp	"Snapshots"	
  C:\Program Files\Rhino 7\Plug-ins\IronPython\RhinoDLR_Python.rhp	"IronPython"	7.34.23267.11001
  C:\Program Files\Rhino 7\Plug-ins\RhinoCycles.rhp	"RhinoCycles"	7.34.23267.11001
  C:\Program Files\Rhino 7\Plug-ins\Toolbars\Toolbars.rhp	"Toolbars"	7.34.23267.11001
  C:\Program Files\Rhino 7\Plug-ins\3dxrhino.rhp	"3Dconnexion 3D Mouse"	
  C:\Program Files\Rhino 7\Plug-ins\Displacement.rhp	"Displacement"	


Rhino 8 SR18 2025-4-10 (Rhino 8, 8.18.25100.11001, Git hash:master @ 5d157e876c23ece334d9c8666b8513ffc6d4a98d)
License type: Commercial, build 2025-04-10
License details: LAN Zoo Network Node

Windows 11 (10.0.26100 SR0.0) or greater (Physical RAM: 63GB)
.NET Framework 4.8.9310.0

Computer platform: LAPTOP  - Plugged in [97% battery remaining]

Hybrid graphics configuration.
  Primary display: Intel(R) Arc(TM) Pro Graphics (Intel) Memory: 2GB, Driver date: 2-26-2025 (M-D-Y).
    > Integrated graphics device with 4 adapter port(s)
        - Secondary monitor is laptop's integrated screen or built-in port
        - Windows Main Display attached to adapter port #1
        - Secondary monitor attached to adapter port #2
  Primary OpenGL: NVIDIA GeForce RTX 4070 Laptop GPU (NVidia) Memory: 8GB, Driver date: 8-7-2025 (M-D-Y). OpenGL Ver: 4.6.0 NVIDIA 580.97
    > Integrated accelerated graphics device (shares primary device ports)
        - Video pass-through to primary display device

OpenGL Settings
  Safe mode: Off
  Use accelerated hardware modes: On
  GPU Tessellation is: On
  Redraw scene when viewports are exposed: On
  Graphics level being used: OpenGL 4.6 (primary GPU's maximum)
  
  Anti-alias mode: 4x
  Mip Map Filtering: Linear
  Anisotropic Filtering Mode: High
  
  Vendor Name: NVIDIA Corporation
  Render version: 4.6
  Shading Language: 4.60 NVIDIA
  Driver Date: 8-7-2025
  Driver Version: 32.0.15.8097
  Maximum Texture size: 32768 x 32768
  Z-Buffer depth: 24 bits
  Maximum Viewport size: 32768 x 32768
  Total Video Memory: 8188 MB

Video card is latest that allowed by IT.
Relevant topics that I could find is this, but it seems that it should have been fixed?
ViewCaptureToFile produces blank white images - Serengeti (Rhino WIP) / Mac - McNeel Forum

Best Regards,

Amy

I’d make sure the script is running in IronPython in Rhino 8 not CPython (the same Python as Rhino 7)