File3dmReadPreviewImage Method |
Attempts to read the preview image out of a 3dm file.
Namespace:
Rhino.FileIO
Assembly:
RhinoCommon (in RhinoCommon.dll)
Since: 5.0
Syntaxpublic 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.
ExceptionsException | Condition |
---|
FileNotFoundException | If the provided path is null, does not exist or cannot be accessed. |
Examplesusing 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);
var image_source = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(bitmap.GetHbitmap(), IntPtr.Zero,
Int32Rect.Empty, System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions());
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)
Dim imageSource = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(bitmap.GetHbitmap(), IntPtr.Zero, Int32Rect.Empty, System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions())
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
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
pb.Width = bitmap.Width
f.Controls.Add(pb);
f.Show();
if __name__ == "__main__":
RunCommand()
See Also