RhinoCommon API
File3dmReadPreviewImage Method |
Attempts to read the preview image out of a 3dm file.
Namespace: Rhino.FileIO
Assembly: RhinoCommon (in RhinoCommon.dll)

public static Bitmap ReadPreviewImage( string path )
Public Shared Function ReadPreviewImage ( path As String ) As Bitmap
Parameters
- path
- Type: SystemString
The location of the file.
Return Value
Type: BitmapA bitmap, or null on failure.

Exception | Condition |
---|---|
FileNotFoundException | If the provided path is null, does not exist or cannot be accessed. |

using Rhino; using Rhino.Commands; using Rhino.Input; using Rhino.Input.Custom; using System; using System.Windows; using System.Windows.Controls; namespace examples_cs { public class ExtractThumbnailCommand : Command { public override string EnglishName { get { return "csExtractThumbnail"; } } protected override Result RunCommand(RhinoDoc doc, RunMode mode) { var gf = RhinoGet.GetFileName(GetFileNameMode.OpenImage, "*.3dm", "select file", null); if (gf == string.Empty || !System.IO.File.Exists(gf)) return Result.Cancel; var bitmap = Rhino.FileIO.File3dm.ReadPreviewImage(gf); // convert System.Drawing.Bitmap to BitmapSource var image_source = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(bitmap.GetHbitmap(), IntPtr.Zero, Int32Rect.Empty, System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions()); // show in WPF window var window = new Window(); var image = new Image {Source = image_source}; window.Content = image; window.Show(); return Result.Success; } } }
Imports Rhino Imports Rhino.Commands Imports Rhino.Input Imports Rhino.Input.Custom Imports System.Windows Imports System.Windows.Controls Namespace examples_vb Public Class ExtractThumbnailCommand Inherits Command Public Overrides ReadOnly Property EnglishName() As String Get Return "vbExtractThumbnail" End Get End Property Protected Overrides Function RunCommand(doc As RhinoDoc, mode As RunMode) As Result Dim gf = RhinoGet.GetFileName(GetFileNameMode.OpenImage, "*.3dm", "select file", Nothing) If gf = String.Empty OrElse Not System.IO.File.Exists(gf) Then Return Result.Cancel End If Dim bitmap = Rhino.FileIO.File3dm.ReadPreviewImage(gf) ' convert System.Drawing.Bitmap to BitmapSource Dim imageSource = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(bitmap.GetHbitmap(), IntPtr.Zero, Int32Rect.Empty, System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions()) ' show in WPF window Dim window = New Window() Dim image = New Image() image.Source = imageSource window.Content = image window.Show() Return Result.Success End Function End Class End Namespace
Python
import Rhino import rhinoscriptsyntax as rs from scriptcontext import doc import clr clr.AddReference("System.Windows.Forms") import System.Windows.Forms def RunCommand(): fn = rs.OpenFileName(title="select file", filter="Rhino files|*.3dm||") if fn == None: return bitmap = doc.ExtractPreviewImage(fn) f = System.Windows.Forms.Form() f.Height = bitmap.Height f.Width = bitmap.Width pb = System.Windows.Forms.PictureBox() pb.Image = bitmap pb.Height = bitmap.Height #SizeMode = System.Windows.Forms.PictueBoxSizeMode.AutoSize pb.Width = bitmap.Width f.Controls.Add(pb); f.Show(); if __name__ == "__main__": RunCommand()

Rhino for Mac
Supported in: 5.4Rhino for Windows
Supported in: 6.14