Esempio n. 1
0
        private static Dictionary <Guid, WicImagingComponent> LoadAllComponents()
        {
            var dic = new Dictionary <Guid, WicImagingComponent>();

            WICImagingFactory.WithFactory(f =>
            {
                foreach (var component in f.EnumerateComponents(WICComponentType.WICAllComponents, WICComponentEnumerateOptions.WICComponentEnumerateDefault))
                {
                    component.Object.GetComponentType(out var type);
                    WicImagingComponent ic;
                    switch (type)
                    {
                    case WICComponentType.WICPixelFormat:
                        ic = new WicPixelFormat(component);
                        break;

                    case WICComponentType.WICEncoder:
                        ic = new WicEncoder(component);
                        break;

                    case WICComponentType.WICDecoder:
                        ic = new WicDecoder(component);
                        break;

                    case WICComponentType.WICPixelFormatConverter:
                        var converter = new WicPixelFormatConverter(component);
                        ic            = converter;
                        break;

                    case WICComponentType.WICMetadataReader:
                        var reader = new WicMetadataReader(component);
                        ic         = reader;
                        break;

                    case WICComponentType.WICMetadataWriter:
                        var writer = new WicMetadataWriter(component);
                        ic         = writer;
                        break;

                    default:
                        ic = new WicImagingComponent(component);
                        break;
                    }

                    dic.Add(ic.Clsid, ic);

                    //WicEncoder.CreateBuiltIn();
                    //WicDecoder.CreateBuiltIn();
                    component.Dispose();
                }
            });
            return(dic);
        }
Esempio n. 2
0
 // they are supposed to have the same container format
 public static WicEncoder FromDecoder(WicDecoder decoder) => decoder != null?FromContainerFormatGuid(decoder.ContainerFormat) : null;