public unsafe static ImageInfo?FromStream(Stream stream) { int width, height, comp; var context = new StbImage.stbi__context(stream); var is16Bit = StbImage.stbi__is_16_main(context) == 1; StbImage.stbi__rewind(context); var infoResult = StbImage.stbi__info_main(context, &width, &height, &comp); StbImage.stbi__rewind(context); if (infoResult == 0) { return(null); } return(new ImageInfo { Width = width, Height = height, ColorComponents = (ColorComponents)comp, BitsPerChannel = is16Bit ? 16 : 8 }); }
public AnimatedGifEnumerator(Stream input, ColorComponents colorComponents) { if (input == null) { throw new ArgumentNullException(nameof(input)); } _context = new StbImage.stbi__context(input); if (StbImage.stbi__gif_test(_context) == 0) { throw new Exception("Input stream is not GIF file."); } _gif = new StbImage.stbi__gif(); ColorComponents = colorComponents; }
public static unsafe ImageResultFloat FromStream(Stream stream, ColorComponents requiredComponents = ColorComponents.Default) { float *result = null; try { int x, y, comp; var context = new StbImage.stbi__context(stream); result = StbImage.stbi__loadf_main(context, &x, &y, &comp, (int)requiredComponents); return(FromResult(result, x, y, (ColorComponents)comp, requiredComponents)); } finally { if (result != null) { CRuntime.free(result); } } }