コード例 #1
0
        /// <summary>
        /// True if the file is a .psd.jpeg, .psd.png, etc file.
        /// </summary>
        protected bool IsPathPSDToCompose(string virtualPath, NameValueCollection queryString = null)
        {
            string fileName = System.IO.Path.GetFileName(virtualPath); //Exclude the folders, just looking at the filename here.
            int    psd      = fileName.IndexOf(".psd", StringComparison.OrdinalIgnoreCase);

            if (psd > -1)
            {
                //We always take the .psd. syntax
                if (fileName.IndexOf(".psd.", StringComparison.OrdinalIgnoreCase) > -1)
                {
                    return(true);
                }

                if (queryString == null)
                {
                    queryString = c.Pipeline.ModifiedQueryString;
                }
                //But we only grab the .psd syntax if we detect our commands
                foreach (string s in PsdCommandBuilder.GetSupportedQuerystringKeys())
                {
                    if (!string.IsNullOrEmpty(queryString[s]))
                    {
                        return(true);
                    }
                }
            }
            return(false);
        }
コード例 #2
0
ファイル: PsdCommandBuilder.cs プロジェクト: timgaunt/resizer
 string[] tKeys      = null; //Wildcard keys
 public PsdCommandSearcher(PsdCommandBuilder b)
 {
     this.b = b;
     vKeys  = b.layerVisibility.Keys.Where(key => key.Contains('*')).ToArray();
     rKeys  = b.layerRedraw.Keys.Where(key => key.Contains('*')).ToArray();
     cKeys  = b.layerColors.Keys.Where(key => key.Contains('*')).ToArray();
     tKeys  = b.layerText.Keys.Where(key => key.Contains('*')).ToArray();
 }
コード例 #3
0
        internal static NameValueCollection QueryStringMinusTriggers(NameValueCollection qs)
        {
            var nvc = new NameValueCollection(qs);

            foreach (string s in PsdCommandBuilder.GetSupportedQuerystringKeys())
            {
                nvc.Remove(s);
            }
            return(nvc);
        }
コード例 #4
0
ファイル: Default.aspx.cs プロジェクト: eakova/resizer
        protected void Page_Load(object sender, EventArgs e)
        {
            var psd = Config.Current.Plugins.Get<PsdComposerPlugin>();

            var request = Request;

            // generate png image link
            const string path = "~/text.psd";
            var query = new NameValueCollection { { "format", "png" } };

            var psdcmd = new PsdCommandBuilder(query);
            psdcmd.renderer = "psdplugin";

            foreach (string s in request.QueryString) {
                if (!"redraw".Equals(request.QueryString[s], StringComparison.OrdinalIgnoreCase))
                    psdcmd.SetText(s, request.QueryString[s]);
                psdcmd.Redraw(s);
                psdcmd.Show(s);

            }

            Encoding c = Encoding.Default;

            psdcmd.SaveToQuerystring(query);

            img.ImageUrl = ResolveUrl(path)  + PathUtils.BuildQueryString(query);

            if (psd != null) {
                //get all layers
                var layers = psd.GetAllLayers(path, query);
                StringBuilder sb = new StringBuilder();
                foreach (IPsdLayer l in layers) {
                    sb.AppendLine(l.Name);
                    sb.AppendLine(l.Text);
                }

                lit.Text = "<pre>" + sb.ToString() + "</pre>";
            }
        }
コード例 #5
0
 public IEnumerable <string> GetSupportedQuerystringKeys()
 {
     return(PsdCommandBuilder.GetSupportedQuerystringKeys());
 }
コード例 #6
0
ファイル: PsdCommandBuilder.cs プロジェクト: eakova/resizer
        string[] vKeys = null; //Wildcard keys

        #endregion Fields

        #region Constructors

        public PsdCommandSearcher(PsdCommandBuilder b)
        {
            this.b = b;
            vKeys = b.layerVisibility.Keys.Where(key => key.Contains('*')).ToArray();
            rKeys = b.layerRedraw.Keys.Where(key => key.Contains('*')).ToArray();
            cKeys = b.layerColors.Keys.Where(key => key.Contains('*')).ToArray();
            tKeys = b.layerText.Keys.Where(key => key.Contains('*')).ToArray();
        }