Help with ImageBrush
#2
Loading bitmaps from code can be a little bit tricky because WPF uses a so called "Pack URI" schemas.

You can read more about that here: https://msdn.microsoft.com/en-us/library....100).aspx

But for your convenience here are the examples on how to read bitmap images and set them as ImageBrush and DiffuseMaterial.

Code:
// Load image from Resources folder with image's Build action set to Resource:
    var bitmapImage = new BitmapImage(new Uri("pack://application:,,,/Resources/PowerToysTexture.png", UriKind.RelativeOrAbsolute));

    // Load image from another assembly (ReferencedAssembly) from its Resources folder with image's Build action set to Resource:
    bitmapImage = new BitmapImage(new Uri("pack://application:,,,/ReferencedAssembly;component/Resources/PowerToysTexture.png", UriKind.RelativeOrAbsolute));

    // Load image from file
    bitmapImage = new BitmapImage(new Uri(@"D:\Images\myImage.png", UriKind.RelativeOrAbsolute));

    // Load image from disk from a loaction relative to the current location (site of origin)
    bitmapImage = new BitmapImage(new Uri("pack://siteoforigin:,,,/Resources/PowerToysTexture.png", UriKind.RelativeOrAbsolute));

    // Same as before but with providing full path to file
    bitmapImage = new BitmapImage(new Uri(System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"Resources/PowerToysTexture.png"), UriKind.RelativeOrAbsolute));

            
    // After you have the BitmapImage, yuo can create ImageBrush
    // ImageBrush allows you to set image tiling or specifying which part of the BitmapImage you want to show
    var imageBrush = new ImageBrush(bitmapImage);

    // Create DiffuseMaterial
    Box1.Material = new DiffuseMaterial(imageBrush);



Your second question is probably related to reading obj files that have textures defined in a directory that is different from the directory where the obj file is. In this case I would advice you to use ReadModel3D with an overload that also gets texturesDirectory:

var objImporter = new Ab3d.ReaderObj();
var wpf3DModel = objImporter.ReadModel3D(objFileName, texturesDirectory, defaultMaterial);
Andrej Benedik
  


Messages In This Thread
Help with ImageBrush - by lloyd32552 - 05-03-2016, 12:47 AM
RE: Help with ImageBrush - by abenedik - 05-07-2016, 08:13 PM
RE: Help with ImageBrush - by lloyd32552 - 05-09-2016, 04:12 PM
RE: Help with ImageBrush - by abenedik - 05-23-2016, 07:10 PM

Forum Jump:


Users browsing this thread:
1 Guest(s)