private ImageInfo Identify(IImagingConfig config, ImageBinReader reader) { var info = GetInfo(config, reader); var readState = info.ReadState; int comp = readState.Components; int bitsPerComp = readState.Depth; var vectorType = TryGetVectorType(comp, bitsPerComp); var compInfo = vectorType.Type?.ComponentInfo ?? new VectorComponentInfo(new VectorComponent( VectorComponentType.Undefined, VectorComponentChannel.Raw, comp * bitsPerComp)); return(new ImageInfo(readState.Width, readState.Height, compInfo, Format)); }
public StbImageDecoderBase( IImagingConfig config, Stream stream, TOptions?decoderOptions) { ImagingConfig = config ?? throw new ArgumentNullException(nameof(config)); DecoderOptions = decoderOptions ?? new(); byte[] buffer = RecyclableMemoryManager.Default.GetBlock(); Reader = new ImageBinReader(stream, buffer); ReadState = new ReadState() { StateReadyCallback = OnStateReady, OutputPixelLineCallback = OnOutputPixelLine, OutputPixelCallback = OnOutputPixel }; }
public ImageInfo Identify( IImagingConfig config, Stream stream, CancellationToken cancellationToken = default) { var buffer = RecyclableMemoryManager.Default.GetBlock(); try { using var reader = new ImageBinReader(stream, buffer); reader.CancellationToken = cancellationToken; return(Identify(config, reader)); } finally { RecyclableMemoryManager.Default.ReturnBlock(buffer); } }
protected override InfoResult GetInfo(IImagingConfig config, ImageBinReader reader) { var tgaInfo = StbSharp.ImageRead.Tga.Info(reader, out var readState); return(new InfoResult(readState)); }
protected abstract InfoResult GetInfo(IImagingConfig config, ImageBinReader reader);