Пример #1
0
        /// <summary>
        /// Exports the images rights.
        /// </summary>
        /// <param name="__docRef">Document</param>
        /// <param name="_layers">Layers</param>
        /// <returns></returns>
        private bool exportImagesRights(Photoshop.Document __docRef, object _layers)
        {
            Photoshop.Layers __layers;
            Photoshop.ArtLayer __alayer = null;
            Photoshop.LayerSet __slayer;
            bool __isArtLayer = false;
            object __layer;
            int __j;
            string __soType;
            ImageRight __ir;

            __ir = new ImageRight();

            __layers = (Photoshop.Layers)_layers;

            for (__j = 1; __j <= __layers.Count; __j++)
            {
                __layer = __layers[__j];

                try
                {
                    __alayer = (Photoshop.ArtLayer)__layer;
                    __isArtLayer = true;
                }
                catch
                {
                    __isArtLayer = false;
                }

                if (__isArtLayer) // Everything as Layer goes here
                {
                    __appRef.ActiveDocument.ActiveLayer = __layer;

                    if (__alayer.Kind == Photoshop.PsLayerKind.psNormalLayer)
                    {
                        __ir.parse(__alayer.Name);
                        if (__ir.isValidURL)
                        {
                            __ir.createLink(__docRef.Path);
                        }
                    }
                    else if (__alayer.Kind == Photoshop.PsLayerKind.psSmartObjectLayer)
                    {
                        __ir.parse(__alayer.Name);
                        if (__ir.Code != null)
                        {
                            if (__ir.isValidURL)
                            {
                                __ir.createLink(__docRef.Path);
                            }
                        }
                        else
                        {
                            __soType = getSmartObjectType(__appRef);
                            if (__soType == ".psd")
                            {

                                int __opn;
                                __opn = __appRef.StringIDToTypeID("placedLayerEditContents");

                                Photoshop.ActionDescriptor __desc4;
                                __desc4 = new Photoshop.ActionDescriptor();

                                try
                                {
                                    __appRef.ExecuteAction(__opn, __desc4, Photoshop.PsDialogModes.psDisplayNoDialogs);
                                }
                                catch (InvalidOperationException ex)
                                {
                                    MessageBox.Show(ex.Message);
                                }
                                bool __test = exportImagesRights(__docRef, __appRef.ActiveDocument.Layers);
                                __appRef.ActiveDocument.Close(2);
                            }
                        }
                    }

                }
                else // Everything as LayerSet goes here
                {
                    __slayer = (Photoshop.LayerSet)__layer;
                    __appRef.ActiveDocument.ActiveLayer = __layer;

                    if (__slayer.LayerType == Photoshop.PsLayerType.psLayerSet)
                    {
                        bool __test = exportImagesRights(__docRef, __slayer.Layers);
                    }
                }
            }
            return true;
        }