public void DoIt()
        {
            // Get the tool GUID;
            Type t = typeof(SimpleTool);
            GuidAttribute guidAttr = (GuidAttribute)t.GetCustomAttributes(typeof(GuidAttribute), false)[0];
            Guid guid = new Guid(guidAttr.Value);

            // don't redefine the stock tool if it's already in the catalog
            ToolPaletteManager mgr = ToolPaletteManager.Manager;
            if (mgr.StockToolCatalogs.Find(guid) != null)
                return;

            SimpleTool tool = new SimpleTool();
            tool.New();

            Catalog catalog = tool.CreateStockTool("SimpleCatalog");
            Palette palette = tool.CreatePalette(catalog, "SimplePalette");
            Package package = tool.CreateShapeCatalog("*AutoCADShapes");
            tool.CreateFlyoutTool(palette, package, null);
            ImageInfo imageInfo = new ImageInfo();
            imageInfo.ResourceFile = "TOOL1.bmp";
            imageInfo.Size=new System.Drawing.Size(65,65);

            tool.CreateCommandTool(palette, "Line", imageInfo, tool.CmdName);
            tool.CreateTool(palette, "Custom Line",imageInfo);
            mgr.LoadCatalogs();
        }
        public async Task<ImageInfo[]> GetImages(Match match)
        {
            var username = match.Groups[1].Value;
            var id = match.Groups[2].Value;
            var info = await this._memoryCache.GetOrSet(
                "hatenafotolife-" + username + "/" + id,
                () => this.Fetch(username, id)
            ).ConfigureAwait(false);

            var result = new ImageInfo();
            var baseUri = "http://cdn-ak.f.st-hatena.com/images/fotolife/" + username.Substring(0, 1) + "/" + username + "/" + id.Substring(0, 8) + "/" + id;

            if (info.Extension == "flv")
            {
                result.VideoFull = result.VideoLarge = result.VideoMobile = baseUri + ".flv";
                result.Full = result.Large = baseUri + ".jpg";
            }
            else
            {
                result.Large = baseUri + "." + info.Extension;
                result.Full = info.IsOriginalAvailable
                    ? baseUri + "_original." + info.Extension
                    : result.Large;
            }

            result.Thumb = baseUri + "_120.jpg";

            return new[] { result };
        }
示例#3
0
文件: Imgur.cs 项目: Enoz/InfiniPad
        public static ImageInfo toImgur(Bitmap bmp)
        {
            ImageConverter convert = new ImageConverter();
            byte[] toSend = (byte[])convert.ConvertTo(bmp, typeof(byte[]));
            using (WebClient wc = new WebClient())
            {
                NameValueCollection nvc = new NameValueCollection
                {
                    { "image", Convert.ToBase64String(toSend) }
                };
                wc.Headers.Add("Authorization", Imgur.getAuth());
                ImageInfo info = new ImageInfo();
                try  
                {
                    byte[] response = wc.UploadValues("https://api.imgur.com/3/upload.xml", nvc);
                    string res = System.Text.Encoding.Default.GetString(response);

                    var xmlDoc = new System.Xml.XmlDocument();
                    xmlDoc.LoadXml(res);
                    info.link = new Uri(xmlDoc.SelectSingleNode("data/link").InnerText);
                    info.deletehash = xmlDoc.SelectSingleNode("data/deletehash").InnerText;
                    info.id = xmlDoc.SelectSingleNode("data/id").InnerText;
                    info.success = true;
                }
                catch (Exception e)
                {
                    info.success = false;
                    info.ex = e;
                }
                return info;
            }
        }
        /// <summary>
        ///     Resizes the image presented by the <paramref name="imageData"/> to a <paramref name="newSize"/>.
        /// </summary>
        /// <param name="imageData">
        ///     The binary data of the image to resize.
        /// </param>
        /// <param name="newSize">
        ///     The size to which to resize the image.
        /// </param>
        /// <param name="keepAspectRatio">
        ///     A flag indicating whether to save original aspect ratio.
        /// </param>
        /// <returns>
        ///     The structure which contains binary data of resized image and the actial size of resized image depending on <paramref name="keepAspectRatio"/> value.
        /// </returns>
        /// <exception cref="InvalidOperationException">
        ///     An error occurred during resizing the image.
        /// </exception>
        public static Task<ImageInfo> ResizeAsync(this byte[] imageData, Size newSize, bool keepAspectRatio)
        {
            var result = new ImageInfo();
            var image = imageData.ToBitmap();
            var percentWidth = (double) newSize.Width/(double) image.PixelWidth;
            var percentHeight = (double) newSize.Height/(double) image.PixelHeight;

            ScaleTransform transform;
            if (keepAspectRatio)
            {
                transform = percentWidth < percentHeight
                                ? new ScaleTransform {ScaleX = percentWidth, ScaleY = percentWidth}
                                : new ScaleTransform {ScaleX = percentHeight, ScaleY = percentHeight};
            }
            else
            {
                transform = new ScaleTransform {ScaleX = percentWidth, ScaleY = percentHeight};
            }

            var resizedImage = new TransformedBitmap(image, transform);

            using (var memoryStream = new MemoryStream())
            {
                var jpegEncoder = new JpegBitmapEncoder();
                jpegEncoder.Frames.Add(BitmapFrame.Create(resizedImage));
                jpegEncoder.Save(memoryStream);

                result.Data = memoryStream.ToArray();
                result.Size = new Size(resizedImage.PixelWidth, resizedImage.PixelHeight);
            }

            return Task.FromResult(result);
        }
 public static void Animate(Image image, EventHandler onFrameChangedHandler)
 {
     if (image != null)
     {
         ImageInfo item = null;
         lock (image)
         {
             item = new ImageInfo(image);
         }
         StopAnimate(image, onFrameChangedHandler);
         bool isReaderLockHeld = rwImgListLock.IsReaderLockHeld;
         LockCookie lockCookie = new LockCookie();
         threadWriterLockWaitCount++;
         try
         {
             if (isReaderLockHeld)
             {
                 lockCookie = rwImgListLock.UpgradeToWriterLock(-1);
             }
             else
             {
                 rwImgListLock.AcquireWriterLock(-1);
             }
         }
         finally
         {
             threadWriterLockWaitCount--;
         }
         try
         {
             if (item.Animated)
             {
                 if (imageInfoList == null)
                 {
                     imageInfoList = new List<ImageInfo>();
                 }
                 item.FrameChangedHandler = onFrameChangedHandler;
                 imageInfoList.Add(item);
                 if (animationThread == null)
                 {
                     animationThread = new Thread(new ThreadStart(ImageAnimator.AnimateImages50ms));
                     animationThread.Name = typeof(ImageAnimator).Name;
                     animationThread.IsBackground = true;
                     animationThread.Start();
                 }
             }
         }
         finally
         {
             if (isReaderLockHeld)
             {
                 rwImgListLock.DowngradeFromWriterLock(ref lockCookie);
             }
             else
             {
                 rwImgListLock.ReleaseWriterLock();
             }
         }
     }
 }
 public AttachedImage(PlatformClient client, AttachedImageData data)
     : base(client)
 {
     _data = data;
     Image = new ImageInfo(client, data.Image);
     Album = new AlbumInfo(client, data.Album);
 }
示例#7
0
        public async Task<ImageInfo[]> GetImages(Match match)
        {
            var id = match.Groups[1].Value;
            var key = "cloudapp-" + id;

            var result = await this._memoryCache.GetOrSet(
                "cloudapp-" + id,
                () => this.Fetch(match.Value)
            ).ConfigureAwait(false);

            ImageInfo i;
            switch (result.item_type)
            {
                case "image":
                    i = new ImageInfo(result.content_url, result.content_url, result.thumbnail_url ?? result.content_url);
                    break;
                case "video":
                    // ThumbnailUrl is probably null.
                    i = new ImageInfo(result.thumbnail_url, result.thumbnail_url, result.thumbnail_url, result.content_url, result.content_url, result.content_url);
                    break;
                default:
                    throw new NotPictureException();
            }

            return new[] { i };
        }
 public Product(string name, decimal unitPrice, Category category, ImageInfo image)
 {
     this.Name = name;
     this.UnitPrice = unitPrice;
     this.Category = category;
     this.Image = image;
 }
示例#9
0
		void FixupGladeChildren ()
		{
			Gtk.Alignment alignment = button.Child as Gtk.Alignment;
			if (alignment == null)
				return;
			Gtk.HBox box = alignment.Child as Gtk.HBox;
			if (box == null)
				return;

			Gtk.Widget[] children = box.Children;
			if (children == null || children.Length != 2)
				return;

			Gtk.Image image = children[0] as Gtk.Image;
			Gtk.Label label = children[1] as Gtk.Label;
			if (image == null || label == null)
				return;
			Stetic.Wrapper.Image iwrap = Stetic.ObjectWrapper.Lookup (image) as Stetic.Wrapper.Image;
			if (iwrap == null)
				return;

			this.label = label.LabelProp;
			button.UseUnderline = label.UseUnderline;

			imageInfo = iwrap.Pixbuf;
			Type = ButtonType.TextAndIcon;
		}
示例#10
0
 void _timer_Tick(object sender, object e)
 {
     _timer.Stop();
     ImageInfo image = new ImageInfo();
     image.ViewBounds = this.ViewBounds;
     StartDownloadImage(image);
 }
        public Bgra32Image(Bgra32Image rhs)
        {
            if (rhs == this)
                return;

            this.imgInfo = rhs.imgInfo;
            this.imgPixels = rhs.imgPixels.Clone() as byte[];
        }
示例#12
0
 public static OpenCLErrorCode GetImageInfo(IMemoryObject image,
                                      ImageInfo paramName,
                                      IntPtr paramValueSize,
                                      InfoBuffer paramValue,
                                      out IntPtr paramValueSizeRet)
 {
     return clGetImageInfo((image as IHandleData).Handle, paramName, paramValueSize, paramValue.Address, out paramValueSizeRet);
 }
        public Gray8Image(Gray8Image rhs)
        {
            if (rhs == this)
                return;

            this.imgInfo = rhs.imgInfo;
            this.imgPixels = rhs.imgPixels.Clone() as byte[];
        }
 public ResizeImageAction(ImageInfo imageInfo, int oldWidth, int oldHeight, int newWidth, int newHeight)
 {
     this.imageInfo = imageInfo;
     this.oldWidth = oldWidth;
     this.oldHeight = oldHeight;
     this.newWidth = newWidth;
     this.newHeight = newHeight;
 }
示例#15
0
        public void ProductImageReturnTheType()
        {
            ImageInfo imageInfo = new ImageInfo("Bike01.jpg");

            string type = imageInfo.ImageType;

            Assert.AreEqual("jpg", type);
        }
示例#16
0
 void StartDownloadImage(ImageInfo image)
 {
     CancelRequest();
     _cts = new CancellationTokenSource();
     Task.Run(async () =>
     {
         await DownloadImage(image, _cts.Token);
     });
 }
 protected override void AfterSetUp()
 {
     _product = new ProductBuilder().Build();
     _image1 = new ImageInfo("1.png", ImageType.Png);
     _image2 = new ImageInfo("2.jpg", ImageType.Jpeg);
     _product.Images.Add(_image1);
     _product.Images.Add(_image2);
     Session.Save(_product);
 }
示例#18
0
        private static void GenerateCrop(Preset preset, string imgUrl, Config config, StringBuilder sbRaw)
        {
            if (string.IsNullOrEmpty(preset.Name))
                return;

            var imgInfo = new ImageInfo(imgUrl);

            var data = new SaveData(sbRaw.ToString());
            imgInfo.GenerateThumbnails(data, config);
        }
		void Log( ImageInfo imageInfo, bool imageLoaded )
		{
			string msg = String.Format( 
				"{0} - {1} BitmapImage: {2}", 
				++this.logCounter, 
				imageLoaded ? "Loaded" : "Unloaded",
				System.IO.Path.GetFileName( imageInfo.FileName ) );
			this.listBoxLog.Items.Add( msg );
			this.listBoxLog.ScrollIntoView( msg );
			this.listBoxLog.SelectedItem = msg;
		}
示例#20
0
        public string Xml(Config config, ImageInfo imageInfo)
        {
            var doc = CreateBaseXmlDocument();
            var root = doc.DocumentElement;

            if (root == null) return null;

            var dateStampNode = doc.CreateNode(XmlNodeType.Attribute, "date", null);
            dateStampNode.Value = imageInfo.DateStamp.ToString("s");
            root.Attributes.SetNamedItem(dateStampNode);

            for (var i = 0; i < Data.Count; i++)
            {
                var crop = (Crop)Data[i];
                var preset = config.Presets[i];

                var newNode = doc.CreateElement("crop");

                var nameNode = doc.CreateNode(XmlNodeType.Attribute, "name", null);
                nameNode.Value = preset.Name;
                newNode.Attributes.SetNamedItem(nameNode);

                var xNode = doc.CreateNode(XmlNodeType.Attribute, "x", null);
                xNode.Value = crop.X.ToString(CultureInfo.InvariantCulture);
                newNode.Attributes.SetNamedItem(xNode);

                var yNode = doc.CreateNode(XmlNodeType.Attribute, "y", null);
                yNode.Value = crop.Y.ToString(CultureInfo.InvariantCulture);
                newNode.Attributes.SetNamedItem(yNode);

                var x2Node = doc.CreateNode(XmlNodeType.Attribute, "x2", null);
                x2Node.Value = crop.X2.ToString(CultureInfo.InvariantCulture);
                newNode.Attributes.SetNamedItem(x2Node);

                var y2Node = doc.CreateNode(XmlNodeType.Attribute, "y2", null);
                y2Node.Value = crop.Y2.ToString(CultureInfo.InvariantCulture);
                newNode.Attributes.SetNamedItem(y2Node);

                if (config.GenerateImages)
                {
                    var urlNode = doc.CreateNode(XmlNodeType.Attribute, "url", null);
                    urlNode.Value = String.Format("{0}/{1}_{2}.jpg",
                                                  imageInfo.RelativePath.Substring(0, imageInfo.RelativePath.LastIndexOf('/')),
                                                  imageInfo.Name,
                                                  preset.Name);
                    newNode.Attributes.SetNamedItem(urlNode);
                }

                root.AppendChild(newNode);
            }

            return doc.InnerXml;
        }
示例#21
0
 /// <summary>
 /// Function returns an img tag for a given Photo view model
 /// </summary>
 /// <param name="html">html helper</param>
 /// <param name="model">photo we wish to create the img tag for</param>
 /// <returns>returns an img tag</returns>
 public static MvcHtmlString Photo(this HtmlHelper html, ImageInfo model)
 {
     StringBuilder sb = new StringBuilder();
         if (model != null)
         {
             sb.Append("<img src='" + model.Src);
             sb.Append("' width='" + model.Width);
             sb.Append("' height='" + model.Height);
             sb.Append("' alt='" + model.Alt + "' />");
         }
         return MvcHtmlString.Create(sb.ToString());
 }
    /// <summary>
    /// Returns the next ImageInfo with random width and height
    /// </summary>
    /// <returns></returns>
    public ImageInfo Next()
    {
        int width = _r.Next(_minWidth, _maxWidth);
        int height =
            _r.Next(
                (int)Math.Round(((100 - _maxAspectRatioDeviationPercentage) * width) / (double)100),
                (int)Math.Round(((100 + _maxAspectRatioDeviationPercentage) * width) / (double)100));

        ImageInfo s = new ImageInfo(width, height);

        return s;
    }
 public void InsertImage(ImageInfo newImage)
 {
     int newID = 0;
     foreach (ImageInfo image in imageInfos)
     {
         if (image.ImageID >= newID)
         {
             newID = image.ImageID + 1;
         }
     }
     newImage.ImageID = newID;
     imageInfos.Add(newImage);
 }
示例#24
0
 /// <summary>
 /// Function returns html tags for a photo with a caption
 /// </summary>
 /// <param name="html">html helper</param>
 /// <param name="model">photo we wish to create the captioned img for</param>
 /// <returns>returns several nested div and img tags</returns>
 public static MvcHtmlString CaptionedPhoto(this HtmlHelper html, ImageInfo model)
 {
     StringBuilder sb = new StringBuilder();
         if (model != null)
         {
             sb.Append("<div class='left'>");
             sb.Append(html.Photo(model));
             sb.Append("<div class='caption'>");
             sb.Append("<div class='left'>" + model.Alt + "</div>");
             sb.Append("<div class='cls'> </div></div></div>");
         }
         return MvcHtmlString.Create(sb.ToString());
 }
 private void InitGenerator()
 {
     //Try to initialize the singleton instance with HD resolution
     try
     {
         GeneratorSingleton.Instance.Initialize(PlatformType.WINDOWS, m_imageInfo);
     }
     catch (GenericEngineErrorException)
     {//If it doesn't succeed, initialize with 640X480
         m_imageInfo = new ImageInfo(ImageResolution.Resolution640x480, Xtr3D.Net.ImageInfo.ImageFormat.RGB888);
         GeneratorSingleton.Instance.Initialize(PlatformType.WINDOWS, m_imageInfo);
     }
 }
        public void InsertImage(TextIter iter, ImageInfo imageInfo, bool supportUndo)
        {
            Gdk.Pixbuf pixbuf = null;
            try {
                pixbuf = new Gdk.Pixbuf (imageInfo.FileContent);
            }
            catch {
                pixbuf = null;
            }
            if (pixbuf == null) {
                // TODO: Report the open image error.
                return;
            }

            if (imageInfo.DisplayWidth == 0) {
                imageInfo.DisplayWidth = pixbuf.Width;
                imageInfo.DisplayHeight = pixbuf.Height;
            }

            var imageWidget = new ImageWidget (pixbuf);
            imageWidget.ResizeImage (imageInfo.DisplayWidth, imageInfo.DisplayHeight);
            imageWidget.ShowAll ();
            InitImageWidgetContextMenu (imageWidget, imageInfo);
            imageWidget.Resized += imageWidget_Resized;

            if (supportUndo)
                Buffer.Undoer.FreezeUndo ();
            var anchorStart = iter;
            var anchor = Buffer.CreateChildAnchor (ref iter);

            var tag = new NoteTag ("dummy");
            tag.CanUndo = false;
            Buffer.ApplyTag (tag, anchorStart, iter);

            Window.Editor.AddChildAtAnchor (imageWidget, anchor);
            imageInfo.SetInBufferInfo (Buffer, anchor, imageWidget);

            //imageWidget.Destroyed += (o, e) =>
            //{
            //    if (!imageWidget.InsertUndone) {
            //        imageInfoList.Remove (imageInfo);
            //    }
            //};

            if (supportUndo) {
                Buffer.Undoer.ThawUndo ();
                var action = new InsertImageAction (this, imageInfo, imageInfoList);
                Buffer.Undoer.AddUndoAction (action);
            }
            imageInfoList.Add (imageInfo);
        }
        internal static ImageInfo[] FindImgs(
            string htmlCode)
        {
            var r =
                new SgmlReader
                    {
                        DocType = @"HTML",
                        InputStream = new StringReader(htmlCode)
                    };
            var al = new List<ImageInfo>();

            //find <img src=""
            while (r.Read())
            {
                if (r.NodeType == XmlNodeType.Element)
                {
                    if (string.Compare(r.Name, @"img", StringComparison.OrdinalIgnoreCase) == 0)
                    {
                        if (r.HasAttributes)
                        {
                            var ii = new ImageInfo();

                            while (r.MoveToNextAttribute())
                            {
                                switch (r.Name.ToLowerInvariant())
                                {
                                    case @"src":
                                        ii.Source = r.Value;
                                        break;
                                    case @"width":
                                        ii.Width = ConvertHelper.ToInt32(r.Value);
                                        break;
                                    case @"height":
                                        ii.Height = ConvertHelper.ToInt32(r.Value);
                                        break;
                                }
                            }

                            // --

                            if (!string.IsNullOrEmpty(ii.Source))
                            {
                                al.Add(ii);
                            }
                        }
                    }
                }
            }

            return al.ToArray();
        }
示例#28
0
    private void DoDirectory(string currentDirectory)
    {
        Console.WriteLine("\n\tLooking in directory " + currentDirectory  + "...\n");
        DirectoryInfo directory = new DirectoryInfo(currentDirectory);

        foreach (DirectoryInfo subDirectory in directory.GetDirectories()) {
            if (subDirectory.FullName != Path.Combine(rootDirectory, "bin")) {
                if (File.Exists(Path.Combine(subDirectory.FullName, ".nolisting")) == false) {
                    if (subDirectory.Name.StartsWith(".") == false) {
                        if ((subDirectory.Attributes & FileAttributes.Hidden) != FileAttributes.Hidden ) {
                            DoDirectory(subDirectory.FullName);
                        }
                    }
                }
            }
        }

        foreach (FileInfo file in directory.GetFiles()) {

            try {
                if (Array.IndexOf(validExtensions,file.Extension.ToLower()) > -1) {
                    string thumbFile = "bin/data/thumbs" + file.FullName.Substring(rootDirectory.Length) + "-thumb.jpg";

                    ImageInfo info;

                    if (File.Exists(thumbFile) == false || file.LastWriteTime > new FileInfo(thumbFile).LastWriteTime) {
                        Console.WriteLine("\t\tGenerating thumbnail for " + file.Name + "...");
                        quickThumbs.GenerateThumb(file.FullName, thumbFile);
                    }

                    string infoFile = "bin/data/info" + file.FullName.Substring(rootDirectory.Length) + ".txt";
                    if (File.Exists(infoFile) == false || file.LastWriteTime > new FileInfo(infoFile).LastWriteTime) {
                        Console.WriteLine("\t\tGenerating exif cache for " + file.Name + "...");
                    }
                    info = new ImageInfo (file.FullName, infoFile);

                    foreach (string size in sizes) {
                        if (Convert.ToInt32(size) < info.Width) {
                            string smallerFile = "bin/data/small_images" + file.FullName.Substring(rootDirectory.Length) + "-" + size + ".jpg";
                            if (File.Exists(smallerFile) == false || file.LastWriteTime > new FileInfo(smallerFile).LastWriteTime) {
                                Console.WriteLine("\t\tCreating " + size + " copy of " + file.Name + "...");
                                quickThumbs.ResizePhoto(file.FullName, smallerFile, Convert.ToInt32(size));
                            }
                        }
                    }
                }
            } catch (Exception ex) {
                Console.Error.WriteLine ("Error proccessing " + file.FullName + ": " + ex.ToString ());
            }
        }
    }
示例#29
0
		protected override void ReadProperties (ObjectReader reader, XmlElement elem)
		{
			if (reader.Format == FileFormat.Glade) {
				string icon = (string)GladeUtils.ExtractProperty (elem, "icon", "");
				stockId = (string)GladeUtils.ExtractProperty (elem, "stock_id", "");
				label = (string)GladeUtils.ExtractProperty (elem, "label", "");
				base.ReadProperties (reader, elem);
				
				if (stockId != null && stockId.Length > 0) {
					Type = ButtonType.StockItem;
				} else if (icon != null && icon != "") {
					imageInfo = ImageInfo.FromFile (icon);
					Type = ButtonType.TextAndIcon;
				}
			} else
				base.ReadProperties (reader, elem);
		}
示例#30
0
文件: LogInfo.cs 项目: RH-Code/GAPP
 public static ImageInfo FromDataString(string s)
 {
     ImageInfo result = new ImageInfo();
     try
     {
         string[] parts = s.Split(new char[] { '|' });
         result.Uri = parts[0];
         result.RotationDeg = int.Parse(parts[1]);
         result.Caption = parts[2].Replace("<!br!>", "\r\n").Replace("[!-!]", "|");
         result.Description = parts[3].Replace("<!br!>", "\r\n").Replace("[!-!]", "|");
     }
     catch
     {
         result = null;
     }
     return result;
 }
        public static void OverlayImage(CustomText currentMessage, ImageInfo imageInfo)
        {
            CachedSpriteData cachedTextureData = ImageDownloader.CachedTextures.ContainsKey(imageInfo.textureIndex) ? ImageDownloader.CachedTextures[imageInfo.textureIndex] : null;

            // If cachedTextureData is null, the emote will be overlayed at a later time once it's finished being cached
            if (cachedTextureData == null || (cachedTextureData.sprite == null && cachedTextureData.animInfo == null))
            {
                return;
            }

            bool animatedEmote = cachedTextureData.animInfo != null;

            foreach (int i in EmojiUtilities.IndexOfAll(currentMessage.text, Char.ConvertFromUtf32(imageInfo.swapChar)))
            {
                CustomImage image = null, shadow = null;
                try
                {
                    if (i > 0 && i < currentMessage.text.Count())
                    {
                        image                     = ChatHandler.Instance.imagePool.Alloc();
                        image.spriteIndex         = imageInfo.textureIndex;
                        image.imageType           = imageInfo.imageType;
                        image.rectTransform.pivot = new Vector2(0, 0);
                        image.sprite              = cachedTextureData.sprite;
                        image.preserveAspect      = false;
                        if (image.sprite)
                        {
                            image.sprite.texture.wrapMode = TextureWrapMode.Clamp;
                        }

                        image.rectTransform.SetParent(currentMessage.rectTransform, false);

                        float aspectRatio = cachedTextureData.width / cachedTextureData.height;
                        if (aspectRatio > 1)
                        {
                            image.rectTransform.localScale = new Vector3(0.064f * aspectRatio, 0.064f, 0.064f);
                        }
                        else
                        {
                            image.rectTransform.localScale = new Vector3(0.064f, 0.064f, 0.064f);
                        }

                        TextGenerator textGen = currentMessage.cachedTextGenerator;
                        Vector3       pos     = new Vector3(textGen.verts[i * 4 + 3].position.x, textGen.verts[i * 4 + 3].position.y);
                        image.rectTransform.position       = currentMessage.gameObject.transform.TransformPoint(pos / pixelsPerUnit - new Vector3(cachedTextureData.width / pixelsPerUnit + 2.5f, cachedTextureData.height / pixelsPerUnit + 1f) + new Vector3(0, 0, -0.1f));
                        image.rectTransform.localPosition -= new Vector3(imageSpacingWidth / 2.3f, 0);

                        if (animatedEmote)
                        {
                            image.material = cachedTextureData.animInfo.imageMaterial;
                            //image.shadow.enabled = false;
                            if (ChatConfig.Instance.DrawShadows)
                            {
                                // Add a shadow to our animated image (the regular unity shadows won't work with this material)
                                shadow                          = ChatHandler.Instance.imagePool.Alloc();
                                shadow.material                 = cachedTextureData.animInfo.shadowMaterial;
                                shadow.sprite                   = null;
                                shadow.spriteIndex              = imageInfo.textureIndex;
                                shadow.imageType                = imageInfo.imageType;
                                shadow.rectTransform.pivot      = new Vector2(0, 0);
                                shadow.rectTransform.localScale = image.rectTransform.localScale;
                                shadow.rectTransform.SetParent(currentMessage.rectTransform, false);
                                shadow.rectTransform.position       = image.rectTransform.position;
                                shadow.rectTransform.localPosition += new Vector3(0.6f, -0.6f, 0.05f);

                                shadow.enabled = true;
                                currentMessage.emoteRenderers.Add(shadow);
                            }
                        }
                        else
                        {
                            image.material = Drawing.noGlowMaterialUI;
                            if (ChatConfig.Instance.DrawShadows)
                            {
                                image.shadow.enabled = true;
                            }
                        }
                        image.enabled = true;
                        currentMessage.emoteRenderers.Add(image);
                    }
                }
                catch (Exception e)
                {
                    if (image)
                    {
                        ChatHandler.Instance.imagePool.Free(image);
                    }

                    Plugin.Log($"Exception {e.ToString()} occured when trying to overlay emote at index {i.ToString()}!");
                }
            }
        }
示例#32
0
        /// <summary>
        /// 比对函数,将每一帧抓拍的照片和身份证照片进行比对
        /// </summary>
        /// <param name="bitmap"></param>
        /// <param name="e"></param>
        /// <returns></returns>
        private bool CompareImgWithIDImg(Bitmap bitmap, PaintEventArgs e)
        {
            recTimes--;
            if (bitmap == null)
            {
                return(false);
            }
            Graphics g       = e.Graphics;
            float    offsetX = videoSource.Width * 1f / bitmap.Width;
            float    offsetY = videoSource.Height * 1f / bitmap.Height;
            //检测人脸,得到Rect框
            ASF_MultiFaceInfo multiFaceInfo = FaceUtil.DetectFace(pVideoEngine, bitmap);
            //得到最大人脸
            ASF_SingleFaceInfo maxFace = FaceUtil.GetMaxFace(multiFaceInfo);
            //得到Rect
            MRECT rect   = maxFace.faceRect;
            float x      = rect.left * offsetX;
            float width  = rect.right * offsetX - x;
            float y      = rect.top * offsetY;
            float height = rect.bottom * offsetY - y;

            //根据Rect进行画框
            g.DrawRectangle(pen, x, y, width, height);
            //将上一帧检测结果显示到页面上
            g.DrawString(trackUnit.message, font, brush, x, y + 5);
            //保证只检测一帧,防止页面卡顿以及出现其他内存被占用情况
            if (isLock == false)
            {
                isLock = true;
                //异步处理提取特征值和比对,不然页面会比较卡
                ThreadPool.QueueUserWorkItem(new WaitCallback(delegate
                {
                    if (rect.left != 0 && rect.right != 0 && rect.top != 0 && rect.bottom != 0)
                    {
                        try
                        {
                            //提取人脸特征
                            IntPtr feature            = FaceUtil.ExtractFeature(pVideoImageEngine, bitmap, maxFace);
                            float similarity          = CompareTwoFeatures(feature, idCardHelper.idInfo.imageFeature);
                            this.similarity.Text      = ("相似度为: " + similarity.ToString("P"));; //显示在界面上
                            this.similarity.ForeColor = similarity > threshold ? Color.Green : Color.Red;
                            //得到比对结果
                            int result = (CompareTwoFeatures(feature, idCardHelper.idInfo.imageFeature) >= threshold) ? 1 : -1;
                            if (result > -1)
                            {
                                bool isLiveness = false;
                                //调整图片数据,非常重要
                                ImageInfo imageInfo = ImageUtil.ReadBMP(bitmap);
                                if (imageInfo == null)
                                {
                                    return;
                                }
                                int retCode_Liveness = -1;
                                //RGB活体检测
                                ASF_LivenessInfo liveInfo = FaceUtil.LivenessInfo_RGB(pVideoImageEngine, imageInfo, multiFaceInfo, out retCode_Liveness);
                                //判断检测结果
                                if (retCode_Liveness == 0 && liveInfo.num > 0)
                                {
                                    int isLive = MemoryUtil.PtrToStructure <int>(liveInfo.isLive);
                                    isLiveness = (isLive == 1) ? true : false;
                                }
                                if (isLiveness)//活体检测成功
                                {
                                    //存放当前人脸识别的相似度
                                    idCardHelper.idInfo.similarity = similarity;
                                    //记录下当前的摄像头的人脸抓拍照
                                    idCardHelper.idInfo.capImage = bitmap;
                                    //验证通过则不再是当前身份证,等待下一次身份证
                                    idCardHelper.idInfo.isRight = false;
                                    //在子线程中输出信息到messageBox
                                    AppendText p = new AppendText(AddTextToMessBox);
                                    lbl_msg.Invoke(p, "人脸验证成功,请通过闸机...\n");
                                    //最终通过闸机
                                    pass = 1;
                                    //以人脸识别的方式通过闸机
                                    idCardHelper.idInfo.isPass = 1;

                                    /*
                                     *通信部分,将内存中的数据存放到数据库中
                                     */
                                    //将身份证数据传入到服务器上
                                    //sendMessageToServer();

                                    //将比对结果放到显示消息中,用于最新显示
                                    trackUnit.message = string.Format("通过验证,相似度为{0}", similarity);
                                    FileHelper.DeleteFile(m_strPath); //删除验证过的本地文件
                                    Thread.Sleep(1000);               //延时1秒
                                    this.IDPbox.Image = defaultImage; //照片恢复默认照片
                                    trackUnit.message = "";           //人脸识别框文字置空
                                    setFormResultValue(true);
                                }
                                else
                                {
                                    pass = 0;//标志未通过
                                    trackUnit.message = "未通过,系统识别为照片";
                                    AppendText p      = new AppendText(AddTextToMessBox);
                                    lbl_msg.Invoke(p, "抱歉,您未通过人脸验证...\n");
                                    FileHelper.DeleteFile(m_strPath);//删除验证过的本地文件
                                }
                            }
                            else
                            {
                                pass = 0;//标志未通过
                                trackUnit.message = "未通过人脸验证";
                                AppendText p      = new AppendText(AddTextToMessBox);
                                lbl_msg.Invoke(p, "抱歉,您未通过人脸验证...\n");
                                FileHelper.DeleteFile(m_strPath);//删除验证过的本地文件
                            }
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine(ex.Message);
                            FileHelper.DeleteFile(m_strPath);//删除验证过的本地文件
                        }
                        finally
                        {
                            isLock = false;
                        }
                    }
                    isLock = false;
                }));
            }
            return(false);
        }
示例#33
0
 public ImageLine(ImageInfo imgInfo)
     : this(imgInfo, ESampleType.INT, false)
 {
 }
示例#34
0
        protected void TransferPictures()
        {
            if (DataSource.SourceId.Id == 0)
            {
                return;
            }

            List <Bitmap> bitmaps         = new List <Bitmap>();
            PendingXfers  pendingTransfer = new PendingXfers();
            TwainResult   result;

            try
            {
                do
                {
                    pendingTransfer.Count = 0;
                    IntPtr hbitmap = IntPtr.Zero;

                    // Get the image info
                    ImageInfo imageInfo = new ImageInfo();
                    result = Twain32Native.DsImageInfo(
                        ApplicationId,
                        DataSource.SourceId,
                        DataGroup.Image,
                        DataArgumentType.ImageInfo,
                        Message.Get,
                        imageInfo);

                    if (result != TwainResult.Success)
                    {
                        DataSource.Close();
                        break;
                    }

                    // Transfer the image from the device
                    result = Twain32Native.DsImageTransfer(
                        ApplicationId,
                        DataSource.SourceId,
                        DataGroup.Image,
                        DataArgumentType.ImageNativeXfer,
                        Message.Get,
                        ref hbitmap);

                    if (result != TwainResult.XferDone)
                    {
                        DataSource.Close();
                        break;
                    }

                    // End pending transfers
                    result = Twain32Native.DsPendingTransfer(
                        ApplicationId,
                        DataSource.SourceId,
                        DataGroup.Control,
                        DataArgumentType.PendingXfers,
                        Message.EndXfer,
                        pendingTransfer);

                    if (result != TwainResult.Success)
                    {
                        DataSource.Close();
                        break;
                    }

                    if (hbitmap == IntPtr.Zero)
                    {
                        log.Warn("Transfer complete but bitmap pointer is still null.");
                    }
                    else
                    {
                        using (var renderer = new BitmapRenderer(hbitmap))
                        {
                            bitmaps.Add(renderer.RenderToBitmap());
                            //TransferImageEventArgs args = new TransferImageEventArgs(renderer.RenderToBitmap(), pendingTransfer.Count != 0);
                            //TransferImage(this, args);
                            //if (!args.ContinueScanning)
                            //break;
                        }
                    }
                }while (pendingTransfer.Count != 0);
                TransferImages(this, new TransferImagesEventArgs(bitmaps));
            }
            finally
            {
                // Reset any pending transfers
                result = Twain32Native.DsPendingTransfer(
                    ApplicationId,
                    DataSource.SourceId,
                    DataGroup.Control,
                    DataArgumentType.PendingXfers,
                    Message.Reset,
                    pendingTransfer);
            }
        }
示例#35
0
 /// <summary>
 /// Creates a new instance of <see cref="KanvasImage"/>.
 /// </summary>
 /// <param name="encodingDefinition">The encoding definition for the image info.</param>
 /// <param name="imageInfo">The image info to represent.</param>
 /// <param name="lockImage">Locks the image to its initial dimension and encodings. This will throw an exception in the methods that may try such changes.</param>
 public KanvasImage(EncodingDefinition encodingDefinition, ImageInfo imageInfo, bool lockImage) :
     this(encodingDefinition, imageInfo)
 {
     IsImageLocked = lockImage;
 }
示例#36
0
 public PngChunkSPLT(ImageInfo info)
     : base(ID, info)
 {
     PalName = "";
 }
示例#37
0
文件: Write.cs 项目: morefun0302/Aaru
 public bool SetMetadata(ImageInfo metadata) => true;
示例#38
0
 public PngChunkSBIT(ImageInfo info)
     : base("sBIT", info)
 {
 }
示例#39
0
        /// <summary>
        /// “选择识别图片”按钮事件
        /// </summary>
        private void ChooseImg(object sender, EventArgs e)
        {
            lblCompareInfo.Text = "";
            if (pImageEngine == IntPtr.Zero)
            {
                chooseMultiImgBtn.Enabled = false;
                matchBtn.Enabled          = false;
                btnClearFaceList.Enabled  = false;
                chooseImgBtn.Enabled      = false;
                MessageBox.Show("请先初始化引擎!");
                return;
            }
            OpenFileDialog openFileDialog = new OpenFileDialog();

            openFileDialog.Title       = "选择图片";
            openFileDialog.Filter      = "图片文件|*.bmp;*.jpg;*.jpeg;*.png";
            openFileDialog.Multiselect = false;
            openFileDialog.FileName    = string.Empty;
            if (openFileDialog.ShowDialog() == DialogResult.OK)
            {
                DateTime detectStartTime = DateTime.Now;
                AppendText(string.Format("------------------------------开始检测,时间:{0}------------------------------\n", detectStartTime.ToString("yyyy-MM-dd HH:mm:ss:ms")));
                image1Path = openFileDialog.FileName;

                //获取文件,拒绝过大的图片
                FileInfo fileInfo = new FileInfo(image1Path);
                long     maxSize  = 1024 * 1024 * 2;
                if (fileInfo.Length > maxSize)
                {
                    MessageBox.Show("图像文件最大为2MB,请压缩后再导入!");
                    AppendText(string.Format("------------------------------检测结束,时间:{0}------------------------------\n", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ms")));
                    AppendText("\n");
                    return;
                }

                Image srcImage = Image.FromFile(image1Path);
                //调整图像宽度,需要宽度为4的倍数
                if (srcImage.Width % 4 != 0)
                {
                    //srcImage = ImageUtil.ScaleImage(srcImage, picImageCompare.Width, picImageCompare.Height);
                    srcImage = ImageUtil.ScaleImage(srcImage, srcImage.Width - (srcImage.Width % 4), srcImage.Height);
                }
                //调整图片数据,非常重要
                ImageInfo imageInfo = ImageUtil.ReadBMP(srcImage);
                //人脸检测
                ASF_MultiFaceInfo multiFaceInfo = FaceUtil.DetectFace(pImageEngine, imageInfo);
                //年龄检测
                int         retCode_Age = -1;
                ASF_AgeInfo ageInfo     = FaceUtil.AgeEstimation(pImageEngine, imageInfo, multiFaceInfo, out retCode_Age);
                //性别检测
                int            retCode_Gender = -1;
                ASF_GenderInfo genderInfo     = FaceUtil.GenderEstimation(pImageEngine, imageInfo, multiFaceInfo, out retCode_Gender);

                //3DAngle检测
                int             retCode_3DAngle = -1;
                ASF_Face3DAngle face3DAngleInfo = FaceUtil.Face3DAngleDetection(pImageEngine, imageInfo, multiFaceInfo, out retCode_3DAngle);

                MemoryUtil.Free(imageInfo.imgData);

                if (multiFaceInfo.faceNum < 1)
                {
                    srcImage              = ImageUtil.ScaleImage(srcImage, picImageCompare.Width, picImageCompare.Height);
                    image1Feature         = IntPtr.Zero;
                    picImageCompare.Image = srcImage;
                    AppendText(string.Format("{0} - 未检测出人脸!\n\n", DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")));
                    AppendText(string.Format("------------------------------检测结束,时间:{0}------------------------------\n", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ms")));
                    AppendText("\n");
                    return;
                }

                MRECT temp       = new MRECT();
                int   ageTemp    = 0;
                int   genderTemp = 0;
                int   rectTemp   = 0;

                //标记出检测到的人脸
                for (int i = 0; i < multiFaceInfo.faceNum; i++)
                {
                    MRECT rect   = MemoryUtil.PtrToStructure <MRECT>(multiFaceInfo.faceRects + MemoryUtil.SizeOf <MRECT>() * i);
                    int   orient = MemoryUtil.PtrToStructure <int>(multiFaceInfo.faceOrients + MemoryUtil.SizeOf <int>() * i);
                    int   age    = 0;

                    if (retCode_Age != 0)
                    {
                        AppendText(string.Format("年龄检测失败,返回{0}!\n\n", retCode_Age));
                    }
                    else
                    {
                        age = MemoryUtil.PtrToStructure <int>(ageInfo.ageArray + MemoryUtil.SizeOf <int>() * i);
                    }

                    int gender = -1;
                    if (retCode_Gender != 0)
                    {
                        AppendText(string.Format("性别检测失败,返回{0}!\n\n", retCode_Gender));
                    }
                    else
                    {
                        gender = MemoryUtil.PtrToStructure <int>(genderInfo.genderArray + MemoryUtil.SizeOf <int>() * i);
                    }


                    int   face3DStatus = -1;
                    float roll         = 0f;
                    float pitch        = 0f;
                    float yaw          = 0f;
                    if (retCode_3DAngle != 0)
                    {
                        AppendText(string.Format("3DAngle检测失败,返回{0}!\n\n", retCode_3DAngle));
                    }
                    else
                    {
                        //角度状态 非0表示人脸不可信
                        face3DStatus = MemoryUtil.PtrToStructure <int>(face3DAngleInfo.status + MemoryUtil.SizeOf <int>() * i);
                        //roll为侧倾角,pitch为俯仰角,yaw为偏航角
                        roll  = MemoryUtil.PtrToStructure <float>(face3DAngleInfo.roll + MemoryUtil.SizeOf <float>() * i);
                        pitch = MemoryUtil.PtrToStructure <float>(face3DAngleInfo.pitch + MemoryUtil.SizeOf <float>() * i);
                        yaw   = MemoryUtil.PtrToStructure <float>(face3DAngleInfo.yaw + MemoryUtil.SizeOf <float>() * i);
                    }


                    int rectWidth  = rect.right - rect.left;
                    int rectHeight = rect.bottom - rect.top;

                    //查找最大人脸
                    if (rectWidth * rectHeight > rectTemp)
                    {
                        rectTemp   = rectWidth * rectHeight;
                        temp       = rect;
                        ageTemp    = age;
                        genderTemp = gender;
                    }

                    //srcImage = ImageUtil.MarkRectAndString(srcImage, rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top, age, gender);
                    AppendText(string.Format("{0} - 人脸坐标:[left:{1},top:{2},right:{3},bottom:{4},orient:{5},roll:{6},pitch:{7},yaw:{8},status:{11}] Age:{9} Gender:{10}\n", DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"), rect.left, rect.top, rect.right, rect.bottom, orient, roll, pitch, yaw, age, (gender >= 0 ? gender.ToString() : ""), face3DStatus));
                }


                AppendText(string.Format("{0} - 人脸数量:{1}\n\n", DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"), multiFaceInfo.faceNum));


                DateTime detectEndTime = DateTime.Now;
                AppendText(string.Format("------------------------------检测结束,时间:{0}------------------------------\n", detectEndTime.ToString("yyyy-MM-dd HH:mm:ss:ms")));
                AppendText("\n");
                ASF_SingleFaceInfo singleFaceInfo = new ASF_SingleFaceInfo();
                //提取人脸特征
                image1Feature = FaceUtil.ExtractFeature(pImageEngine, srcImage, out singleFaceInfo);

                //清空上次的匹配结果
                for (int i = 0; i < imagesFeatureList.Count; i++)
                {
                    imageList.Items[i].Text = string.Format("{0}号", i);
                }

                float scaleRate = ImageUtil.getWidthAndHeight(srcImage.Width, srcImage.Height, picImageCompare.Width, picImageCompare.Height);
                srcImage = ImageUtil.ScaleImage(srcImage, picImageCompare.Width, picImageCompare.Height);
                srcImage = ImageUtil.MarkRectAndString(srcImage, (int)(temp.left * scaleRate), (int)(temp.top * scaleRate), (int)(temp.right * scaleRate) - (int)(temp.left * scaleRate), (int)(temp.bottom * scaleRate) - (int)(temp.top * scaleRate), ageTemp, genderTemp, picImageCompare.Width);


                //显示标记后的图像
                picImageCompare.Image = srcImage;
            }
        }
示例#40
0
 public PngChunkTEXT(ImageInfo info)
     : base(ID, info)
 {
 }
示例#41
0
 /// <summary>
 /// Constructs an ImageLine
 /// </summary>
 /// <param name="imgInfo">Inmutable copy of PNG ImageInfo</param>
 /// <param name="stype">Storage for samples:INT (default) or BYTE</param>
 /// <param name="unpackedMode">If true and bitdepth less than 8, samples are unpacked. This has no effect if biddepth 8 or 16</param>
 public ImageLine(ImageInfo imgInfo, ESampleType stype, bool unpackedMode)
     : this(imgInfo, stype, unpackedMode, null, null)
 {
 }
示例#42
0
文件: Write.cs 项目: morefun0302/Aaru
        public bool Create(string path, MediaType mediaType, Dictionary <string, string> options, ulong sectors,
                           uint sectorSize)
        {
            if (!SupportedMediaTypes.Contains(mediaType))
            {
                ErrorMessage = $"Unsupported media format {mediaType}";

                return(false);
            }

            _imageInfo = new ImageInfo
            {
                MediaType  = mediaType,
                SectorSize = sectorSize,
                Sectors    = sectors
            };

            try
            {
                _descriptorStream = new FileStream(path, FileMode.Create, FileAccess.ReadWrite, FileShare.None);

                _imageStream =
                    new
                    FileStream(Path.Combine(Path.GetDirectoryName(path) ?? "", Path.GetFileNameWithoutExtension(path)) + ".mdf",
                               FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None);
            }
            catch (IOException e)
            {
                ErrorMessage = $"Could not create new image file, exception {e.Message}";

                return(false);
            }

            _imageInfo.MediaType = mediaType;

            switch (mediaType)
            {
            case MediaType.CD:
            case MediaType.CDDA:
            case MediaType.CDEG:
            case MediaType.CDG:
            case MediaType.CDI:
            case MediaType.CDMIDI:
            case MediaType.CDMRW:
            case MediaType.CDPLUS:
            case MediaType.CDR:
            case MediaType.CDROM:
            case MediaType.CDROMXA:
            case MediaType.CDRW:
            case MediaType.CDV:
            case MediaType.DTSCD:
            case MediaType.JaguarCD:
            case MediaType.MEGACD:
            case MediaType.PS1CD:
            case MediaType.PS2CD:
            case MediaType.SuperCDROM2:
            case MediaType.SVCD:
            case MediaType.SATURNCD:
            case MediaType.ThreeDO:
            case MediaType.VCD:
            case MediaType.VCDHD:
            case MediaType.NeoGeoCD:
            case MediaType.PCFX:
            case MediaType.CDTV:
            case MediaType.CD32:
            case MediaType.Nuon:
            case MediaType.Playdia:
            case MediaType.Pippin:
            case MediaType.FMTOWNS:
            case MediaType.MilCD:
            case MediaType.VideoNow:
            case MediaType.VideoNowColor:
            case MediaType.VideoNowXp:
            case MediaType.CVD:
                _isDvd = false;

                break;

            default:
                _isDvd = true;

                break;
            }

            _trackFlags = new Dictionary <byte, byte>();

            IsWriting    = true;
            ErrorMessage = null;

            return(true);
        }
示例#43
0
        public void DrawState(ImageInfo ii, Gamepad gp, Control currentCbx)
        {
            bool on;

            // Show trigger axis state -green minus image.
            if (ii.Code == MapCode.LeftTrigger || ii.Code == MapCode.RightTrigger)
            {
                var isLeft  = ii.Code == MapCode.LeftTrigger;
                var control = isLeft ? LeftTriggerStatus : RightTriggerStatus;
                var h       = (float)(((System.Windows.FrameworkElement)control.Parent).Height - control.Height);
                var y       = isLeft ? gp.LeftTrigger : gp.RightTrigger;
                var b       = ConvertHelper.ConvertRangeF(byte.MinValue, byte.MaxValue, 0, h, y);
                var m       = control.Margin;
                on             = y > 0;
                control.Margin = new System.Windows.Thickness(m.Left, m.Top, m.Right, b);
            }
            // Draw thumb axis state - green cross image.
            if (ii.Code == MapCode.LeftThumbButton || ii.Code == MapCode.RightThumbButton)
            {
                var isLeft  = ii.Code == MapCode.LeftThumbButton;
                var control = isLeft ? LeftThumbStatus : RightThumbStatus;
                var w       = (float)((System.Windows.FrameworkElement)control.Parent).Width / 2F;
                var x       = isLeft ? gp.LeftThumbX : gp.RightThumbX;
                var y       = isLeft ? gp.LeftThumbY : gp.RightThumbY;
                var l       = ConvertHelper.ConvertRangeF(short.MinValue, short.MaxValue, -w, w, x);
                var t       = ConvertHelper.ConvertRangeF(short.MinValue, short.MaxValue, w, -w, y);
                var m       = control.Margin;
                control.Margin = new System.Windows.Thickness(l, t, m.Right, m.Bottom);
            }
            // If D-Pad.
            if (ii.Code == MapCode.DPad)
            {
                on =
                    gp.Buttons.HasFlag(GamepadButtonFlags.DPadUp) ||
                    gp.Buttons.HasFlag(GamepadButtonFlags.DPadLeft) ||
                    gp.Buttons.HasFlag(GamepadButtonFlags.DPadRight) ||
                    gp.Buttons.HasFlag(GamepadButtonFlags.DPadDown);
            }
            // If button is not specified then...
            else if (ii.Button == GamepadButtonFlags.None)
            {
                var t = 2000;
                // This is axis.
                short value = 0;
                if (ii.Code == MapCode.LeftThumbAxisX)
                {
                    value = gp.LeftThumbX;
                }
                else if (ii.Code == MapCode.LeftThumbAxisY)
                {
                    value = gp.LeftThumbY;
                }
                else if (ii.Code == MapCode.RightThumbAxisX)
                {
                    value = gp.RightThumbX;
                }
                else if (ii.Code == MapCode.RightThumbAxisY)
                {
                    value = gp.RightThumbY;
                }
                // Check when value is on.
                on = value <-t || value> t;
                if (ii.Code == MapCode.LeftThumbRight)
                {
                    on = gp.LeftThumbX > t;
                }
                if (ii.Code == MapCode.LeftThumbLeft)
                {
                    on = gp.LeftThumbX < -t;
                }
                if (ii.Code == MapCode.LeftThumbUp)
                {
                    on = gp.LeftThumbY > t;
                }
                if (ii.Code == MapCode.LeftThumbDown)
                {
                    on = gp.LeftThumbY < -t;
                }
                if (ii.Code == MapCode.RightThumbRight)
                {
                    on = gp.RightThumbX > t;
                }
                if (ii.Code == MapCode.RightThumbLeft)
                {
                    on = gp.RightThumbX < -t;
                }
                if (ii.Code == MapCode.RightThumbUp)
                {
                    on = gp.RightThumbY > t;
                }
                if (ii.Code == MapCode.RightThumbDown)
                {
                    on = gp.RightThumbY < -t;
                }
            }
            else
            {
                // Check when value is on.
                on = gp.Buttons.HasFlag(ii.Button);
            }
            MapCode recordingCode = ii.Code;

            var isRecordingItem = Recorder.Recording && ii.Code == Recorder.CurrentMap.Code;

            // If recording then...
            if (Recorder.Recording)
            {
                MapCode?redirect = null;
                if (Recorder.CurrentMap.Code == MapCode.RightThumbAxisX)
                {
                    redirect = MapCode.RightThumbRight;
                }
                if (Recorder.CurrentMap.Code == MapCode.RightThumbAxisY)
                {
                    redirect = MapCode.RightThumbUp;
                }
                if (Recorder.CurrentMap.Code == MapCode.LeftThumbAxisX)
                {
                    redirect = MapCode.LeftThumbRight;
                }
                if (Recorder.CurrentMap.Code == MapCode.LeftThumbAxisY)
                {
                    redirect = MapCode.LeftThumbUp;
                }
                if (redirect.HasValue)
                {
                    recordingCode = redirect.Value;
                    // Skip if redirected control.
                    if (ii.Code == recordingCode)
                    {
                        return;
                    }
                }
            }
            // If recording is in progress then...
            if (isRecordingItem)
            {
                ImageControl.SetImage(recordingCode, NavImageType.Record, Recorder.DrawRecordingImage);
            }
            else if (
                ShowLeftThumbButtons && SettingsConverter.LeftThumbCodes.Contains(ii.Code) ||
                ShowRightThumbButtons && SettingsConverter.RightThumbCodes.Contains(ii.Code) ||
                ShowDPadButtons && SettingsConverter.DPadCodes.Contains(ii.Code) ||
                ShowMainButtons && SettingsConverter.MainButtonCodes.Contains(ii.Code) ||
                ShowMenuButtons && SettingsConverter.MenuButtonCodes.Contains(ii.Code) ||
                ShowTriggerButtons && SettingsConverter.TriggerButtonCodes.Contains(ii.Code) ||
                ShowShoulderButtons && SettingsConverter.ShoulderButtonCodes.Contains(ii.Code)
                )
            {
                var nit = on ? NavImageType.Active : NavImageType.Normal;
                ImageControl.SetImage(ii.Code, nit, true);
            }
            else
            {
                var isAxisCode = SettingsConverter.AxisCodes.Contains(ii.Code);
                // Axis status will be displayed as image therefore can hide active button indicator.
                ImageControl.SetImage(ii.Code, NavImageType.Active, on && !isAxisCode);
            }
            if (ii.Label != null)
            {
                setLabelColor(on, ii.Label);
            }
        }
示例#44
0
 public PngChunkPHYS(ImageInfo info)
     : base(ID, info)
 {
 }
示例#45
0
        public IPersistable CreateRIFObject(ObjectType objectType, ref IntermediateFormatReader context)
        {
            IPersistable persistable = null;

            if (objectType == ObjectType.Null)
            {
                return(null);
            }
            IDOwner    parentIDOwner    = m_parentIDOwner;
            ReportItem parentReportItem = m_parentReportItem;

            switch (objectType)
            {
            case ObjectType.PageSection:
                persistable        = new PageSection(m_parentReportItem);
                m_parentReportItem = (ReportItem)persistable;
                break;

            case ObjectType.Line:
                persistable        = new Line(m_parentReportItem);
                m_parentReportItem = (ReportItem)persistable;
                break;

            case ObjectType.Rectangle:
                persistable        = new Rectangle(m_parentReportItem);
                m_parentReportItem = (ReportItem)persistable;
                break;

            case ObjectType.Image:
                persistable        = new Image(m_parentReportItem);
                m_parentReportItem = (ReportItem)persistable;
                break;

            case ObjectType.TextBox:
                persistable        = new TextBox(m_parentReportItem);
                m_parentReportItem = (ReportItem)persistable;
                break;

            case ObjectType.SubReport:
                persistable        = new SubReport(m_parentReportItem);
                m_parentReportItem = (ReportItem)persistable;
                break;

            case ObjectType.Grouping:
                persistable = new Grouping(ConstructionPhase.Deserializing);
                break;

            case ObjectType.Sorting:
                persistable = new Sorting(ConstructionPhase.Deserializing);
                break;

            case ObjectType.ReportItemCollection:
                persistable = new ReportItemCollection();
                break;

            case ObjectType.ReportItemIndexer:
                persistable = default(ReportItemIndexer);
                break;

            case ObjectType.Style:
                persistable = new Style(ConstructionPhase.Deserializing);
                break;

            case ObjectType.AttributeInfo:
                persistable = new AttributeInfo();
                break;

            case ObjectType.Visibility:
                persistable = new Visibility();
                break;

            case ObjectType.ExpressionInfo:
                persistable = new ExpressionInfo();
                break;

            case ObjectType.ExpressionInfoTypeValuePair:
                persistable = new ExpressionInfoTypeValuePair();
                break;

            case ObjectType.DataAggregateInfo:
                persistable = new DataAggregateInfo();
                break;

            case ObjectType.RunningValueInfo:
                persistable = new RunningValueInfo();
                break;

            case ObjectType.Filter:
                persistable = new Filter();
                break;

            case ObjectType.DataSource:
                persistable = new DataSource();
                break;

            case ObjectType.DataSet:
                persistable = new DataSet();
                break;

            case ObjectType.ReportQuery:
                persistable = new ReportQuery();
                break;

            case ObjectType.Field:
                persistable = new Field();
                break;

            case ObjectType.ParameterValue:
                persistable = new ParameterValue();
                break;

            case ObjectType.ReportSnapshot:
                persistable = new ReportSnapshot();
                break;

            case ObjectType.DocumentMapNode:
                persistable = new DocumentMapNode();
                break;

            case ObjectType.DocumentMapBeginContainer:
                persistable = DocumentMapBeginContainer.Instance;
                break;

            case ObjectType.DocumentMapEndContainer:
                persistable = DocumentMapEndContainer.Instance;
                break;

            case ObjectType.ReportInstance:
                persistable = new ReportInstance();
                break;

            case ObjectType.ParameterInfo:
                persistable = new ParameterInfo();
                break;

            case ObjectType.ValidValue:
                persistable = new ValidValue();
                break;

            case ObjectType.ParameterDataSource:
                persistable = new ParameterDataSource();
                break;

            case ObjectType.ParameterDef:
                persistable = new ParameterDef();
                break;

            case ObjectType.ProcessingMessage:
                persistable = new ProcessingMessage();
                break;

            case ObjectType.CodeClass:
                persistable = default(CodeClass);
                break;

            case ObjectType.Action:
                persistable = new Action();
                break;

            case ObjectType.RenderingPagesRanges:
                persistable = default(RenderingPagesRanges);
                break;

            case ObjectType.IntermediateFormatVersion:
                persistable = new IntermediateFormatVersion();
                break;

            case ObjectType.ImageInfo:
                persistable = new ImageInfo();
                break;

            case ObjectType.ActionItem:
                persistable = new ActionItem();
                break;

            case ObjectType.DataValue:
                persistable = new DataValue();
                break;

            case ObjectType.CustomReportItem:
                persistable        = new CustomReportItem(m_parentReportItem);
                m_parentReportItem = (ReportItem)persistable;
                break;

            case ObjectType.SortFilterEventInfoMap:
                persistable = new SortFilterEventInfoMap();
                break;

            case ObjectType.SortFilterEventInfo:
                persistable = new SortFilterEventInfo();
                break;

            case ObjectType.EndUserSort:
                persistable = new EndUserSort();
                break;

            case ObjectType.ScopeLookupTable:
                persistable = new ScopeLookupTable();
                break;

            case ObjectType.Tablix:
                persistable        = new Tablix(m_parentReportItem);
                m_parentReportItem = (ReportItem)persistable;
                break;

            case ObjectType.TablixHeader:
                persistable = new TablixHeader();
                break;

            case ObjectType.TablixMember:
                persistable = new TablixMember();
                break;

            case ObjectType.TablixColumn:
                persistable = new TablixColumn();
                break;

            case ObjectType.TablixRow:
                persistable = new TablixRow();
                break;

            case ObjectType.TablixCornerCell:
                persistable = new TablixCornerCell();
                break;

            case ObjectType.TablixCell:
                persistable = new TablixCell();
                break;

            case ObjectType.Chart:
                persistable        = new Chart(m_parentReportItem);
                m_parentReportItem = (ReportItem)persistable;
                break;

            case ObjectType.ChartMember:
                persistable = new ChartMember();
                break;

            case ObjectType.ChartSeries:
                persistable = new ChartSeries();
                break;

            case ObjectType.ChartDataPoint:
                persistable = new ChartDataPoint();
                break;

            case ObjectType.ChartDataPointValues:
                persistable = new ChartDataPointValues();
                break;

            case ObjectType.ChartArea:
                persistable = new ChartArea();
                break;

            case ObjectType.ChartLegend:
                persistable = new ChartLegend();
                break;

            case ObjectType.ChartLegendTitle:
                persistable = new ChartLegendTitle();
                break;

            case ObjectType.ChartAxis:
                persistable = new ChartAxis();
                break;

            case ObjectType.ThreeDProperties:
                persistable = new ChartThreeDProperties();
                break;

            case ObjectType.ChartDataLabel:
                persistable = new ChartDataLabel();
                break;

            case ObjectType.ChartMarker:
                persistable = new ChartMarker();
                break;

            case ObjectType.ChartTitle:
                persistable = new ChartTitle();
                break;

            case ObjectType.ChartAxisScaleBreak:
                persistable = new ChartAxisScaleBreak();
                break;

            case ObjectType.ChartDerivedSeries:
                persistable = new ChartDerivedSeries();
                break;

            case ObjectType.ChartBorderSkin:
                persistable = new ChartBorderSkin();
                break;

            case ObjectType.ChartNoDataMessage:
                persistable = new ChartNoDataMessage();
                break;

            case ObjectType.ChartItemInLegend:
                persistable = new ChartItemInLegend();
                break;

            case ObjectType.ChartEmptyPoints:
                persistable = new ChartEmptyPoints();
                break;

            case ObjectType.ChartNoMoveDirections:
                persistable = new ChartNoMoveDirections();
                break;

            case ObjectType.ChartFormulaParameter:
                persistable = new ChartFormulaParameter();
                break;

            case ObjectType.ChartLegendColumn:
                persistable = new ChartLegendColumn();
                break;

            case ObjectType.ChartLegendColumnHeader:
                persistable = new ChartLegendColumnHeader();
                break;

            case ObjectType.ChartLegendCustomItem:
                persistable = new ChartLegendCustomItem();
                break;

            case ObjectType.ChartLegendCustomItemCell:
                persistable = new ChartLegendCustomItemCell();
                break;

            case ObjectType.ChartAlignType:
                persistable = new ChartAlignType();
                break;

            case ObjectType.ChartElementPosition:
                persistable = new ChartElementPosition();
                break;

            case ObjectType.ChartSmartLabel:
                persistable = new ChartSmartLabel();
                break;

            case ObjectType.ChartStripLine:
                persistable = new ChartStripLine();
                break;

            case ObjectType.ChartAxisTitle:
                persistable = new ChartAxisTitle();
                break;

            case ObjectType.ChartCustomPaletteColor:
                persistable = new ChartCustomPaletteColor();
                break;

            case ObjectType.GridLines:
                persistable = new ChartGridLines();
                break;

            case ObjectType.ChartTickMarks:
                persistable = new ChartTickMarks();
                break;

            case ObjectType.DataMember:
                persistable = new DataMember();
                break;

            case ObjectType.CustomDataRow:
                persistable = new CustomDataRow();
                break;

            case ObjectType.DataCell:
                persistable = new DataCell();
                break;

            case ObjectType.Variable:
                persistable = new Variable();
                break;

            case ObjectType.Page:
                persistable = new Page();
                break;

            case ObjectType.Paragraph:
                persistable = new Paragraph();
                break;

            case ObjectType.TextRun:
                persistable = new TextRun();
                break;

            case ObjectType.Report:
                persistable        = new Report(m_parentReportItem);
                m_parentReportItem = (ReportItem)persistable;
                break;

            case ObjectType.GaugePanel:
                persistable        = new GaugePanel(m_parentReportItem);
                m_parentReportItem = (ReportItem)persistable;
                break;

            case ObjectType.GaugeMember:
                persistable = new GaugeMember();
                break;

            case ObjectType.GaugeRow:
                persistable = new GaugeRow();
                break;

            case ObjectType.GaugeCell:
                persistable = new GaugeCell();
                break;

            case ObjectType.BackFrame:
                persistable = new BackFrame();
                break;

            case ObjectType.CapImage:
                persistable = new CapImage();
                break;

            case ObjectType.FrameBackground:
                persistable = new FrameBackground();
                break;

            case ObjectType.FrameImage:
                persistable = new FrameImage();
                break;

            case ObjectType.CustomLabel:
                persistable = new CustomLabel();
                break;

            case ObjectType.GaugeImage:
                persistable = new GaugeImage();
                break;

            case ObjectType.GaugeInputValue:
                persistable = new GaugeInputValue();
                break;

            case ObjectType.GaugeLabel:
                persistable = new GaugeLabel();
                break;

            case ObjectType.GaugePanelItem:
                persistable = new GaugePanelItem();
                break;

            case ObjectType.GaugeTickMarks:
                persistable = new GaugeTickMarks();
                break;

            case ObjectType.LinearGauge:
                persistable = new LinearGauge();
                break;

            case ObjectType.LinearPointer:
                persistable = new LinearPointer();
                break;

            case ObjectType.LinearScale:
                persistable = new LinearScale();
                break;

            case ObjectType.NumericIndicator:
                persistable = new NumericIndicator();
                break;

            case ObjectType.PinLabel:
                persistable = new PinLabel();
                break;

            case ObjectType.PointerCap:
                persistable = new PointerCap();
                break;

            case ObjectType.PointerImage:
                persistable = new PointerImage();
                break;

            case ObjectType.RadialGauge:
                persistable = new RadialGauge();
                break;

            case ObjectType.RadialPointer:
                persistable = new RadialPointer();
                break;

            case ObjectType.RadialScale:
                persistable = new RadialScale();
                break;

            case ObjectType.ScaleLabels:
                persistable = new ScaleLabels();
                break;

            case ObjectType.ScalePin:
                persistable = new ScalePin();
                break;

            case ObjectType.ScaleRange:
                persistable = new ScaleRange();
                break;

            case ObjectType.IndicatorImage:
                persistable = new IndicatorImage();
                break;

            case ObjectType.StateIndicator:
                persistable = new StateIndicator();
                break;

            case ObjectType.Thermometer:
                persistable = new Thermometer();
                break;

            case ObjectType.TickMarkStyle:
                persistable = new TickMarkStyle();
                break;

            case ObjectType.TopImage:
                persistable = new TopImage();
                break;

            case ObjectType.LookupInfo:
                persistable = new LookupInfo();
                break;

            case ObjectType.LookupDestinationInfo:
                persistable = new LookupDestinationInfo();
                break;

            case ObjectType.ReportSection:
                persistable = new ReportSection();
                break;

            case ObjectType.MapFieldDefinition:
                persistable = new MapFieldDefinition();
                break;

            case ObjectType.MapFieldName:
                persistable = new MapFieldName();
                break;

            case ObjectType.MapLineLayer:
                persistable = new MapLineLayer();
                break;

            case ObjectType.MapShapefile:
                persistable = new MapShapefile();
                break;

            case ObjectType.MapPolygonLayer:
                persistable = new MapPolygonLayer();
                break;

            case ObjectType.MapSpatialDataRegion:
                persistable = new MapSpatialDataRegion();
                break;

            case ObjectType.MapSpatialDataSet:
                persistable = new MapSpatialDataSet();
                break;

            case ObjectType.MapPointLayer:
                persistable = new MapPointLayer();
                break;

            case ObjectType.MapTile:
                persistable = new MapTile();
                break;

            case ObjectType.MapTileLayer:
                persistable = new MapTileLayer();
                break;

            case ObjectType.MapField:
                persistable = new MapField();
                break;

            case ObjectType.MapLine:
                persistable = new MapLine();
                break;

            case ObjectType.MapPolygon:
                persistable = new MapPolygon();
                break;

            case ObjectType.MapPoint:
                persistable = new MapPoint();
                break;

            case ObjectType.MapLineTemplate:
                persistable = new MapLineTemplate();
                break;

            case ObjectType.MapPolygonTemplate:
                persistable = new MapPolygonTemplate();
                break;

            case ObjectType.MapMarkerTemplate:
                persistable = new MapMarkerTemplate();
                break;

            case ObjectType.Map:
                persistable        = new Map(m_parentReportItem);
                m_parentReportItem = (ReportItem)persistable;
                break;

            case ObjectType.MapBorderSkin:
                persistable = new MapBorderSkin();
                break;

            case ObjectType.MapDataRegion:
                persistable = new MapDataRegion(m_parentReportItem);
                break;

            case ObjectType.MapMember:
                persistable = new MapMember();
                break;

            case ObjectType.MapRow:
                persistable = new MapRow();
                break;

            case ObjectType.MapCell:
                persistable = new MapCell();
                break;

            case ObjectType.MapLocation:
                persistable = new MapLocation();
                break;

            case ObjectType.MapSize:
                persistable = new MapSize();
                break;

            case ObjectType.MapGridLines:
                persistable = new MapGridLines();
                break;

            case ObjectType.MapBindingFieldPair:
                persistable = new MapBindingFieldPair();
                break;

            case ObjectType.MapCustomView:
                persistable = new MapCustomView();
                break;

            case ObjectType.MapDataBoundView:
                persistable = new MapDataBoundView();
                break;

            case ObjectType.MapElementView:
                persistable = new MapElementView();
                break;

            case ObjectType.MapViewport:
                persistable = new MapViewport();
                break;

            case ObjectType.MapLimits:
                persistable = new MapLimits();
                break;

            case ObjectType.MapColorScale:
                persistable = new MapColorScale();
                break;

            case ObjectType.MapColorScaleTitle:
                persistable = new MapColorScaleTitle();
                break;

            case ObjectType.MapDistanceScale:
                persistable = new MapDistanceScale();
                break;

            case ObjectType.MapTitle:
                persistable = new MapTitle();
                break;

            case ObjectType.MapLegend:
                persistable = new MapLegend();
                break;

            case ObjectType.MapLegendTitle:
                persistable = new MapLegendTitle();
                break;

            case ObjectType.MapBucket:
                persistable = new MapBucket();
                break;

            case ObjectType.MapColorPaletteRule:
                persistable = new MapColorPaletteRule();
                break;

            case ObjectType.MapColorRangeRule:
                persistable = new MapColorRangeRule();
                break;

            case ObjectType.MapCustomColorRule:
                persistable = new MapCustomColorRule();
                break;

            case ObjectType.MapCustomColor:
                persistable = new MapCustomColor();
                break;

            case ObjectType.MapLineRules:
                persistable = new MapLineRules();
                break;

            case ObjectType.MapPolygonRules:
                persistable = new MapPolygonRules();
                break;

            case ObjectType.MapSizeRule:
                persistable = new MapSizeRule();
                break;

            case ObjectType.MapMarkerImage:
                persistable = new MapMarkerImage();
                break;

            case ObjectType.MapMarker:
                persistable = new MapMarker();
                break;

            case ObjectType.MapMarkerRule:
                persistable = new MapMarkerRule();
                break;

            case ObjectType.MapPointRules:
                persistable = new MapPointRules();
                break;

            case ObjectType.PageBreak:
                persistable = new PageBreak();
                break;

            case ObjectType.DataScopeInfo:
                persistable = new DataScopeInfo();
                break;

            case ObjectType.LinearJoinInfo:
                persistable = new LinearJoinInfo();
                break;

            case ObjectType.IntersectJoinInfo:
                persistable = new IntersectJoinInfo();
                break;

            case ObjectType.BucketedDataAggregateInfos:
                persistable = new BucketedDataAggregateInfos();
                break;

            case ObjectType.DataAggregateInfoBucket:
                persistable = new DataAggregateInfoBucket();
                break;

            case ObjectType.NumericIndicatorRange:
                persistable = new NumericIndicatorRange();
                break;

            case ObjectType.IndicatorState:
                persistable = new IndicatorState();
                break;

            case ObjectType.SharedDataSetQuery:
                persistable = new SharedDataSetQuery();
                break;

            case ObjectType.DataSetCore:
                persistable = new DataSetCore();
                break;

            case ObjectType.DataSetParameterValue:
                persistable = new DataSetParameterValue();
                break;

            case ObjectType.RIFVariantContainer:
                persistable = new RIFVariantContainer();
                break;

            case ObjectType.IdcRelationship:
                persistable = new IdcRelationship();
                break;

            case ObjectType.DefaultRelationship:
                persistable = new DefaultRelationship();
                break;

            case ObjectType.JoinCondition:
                persistable = new Relationship.JoinCondition();
                break;

            case ObjectType.BandLayoutOptions:
                persistable = new BandLayoutOptions();
                break;

            case ObjectType.LabelData:
                persistable = new LabelData();
                break;

            case ObjectType.Slider:
                persistable = new Slider();
                break;

            case ObjectType.Coverflow:
                persistable = new Coverflow();
                break;

            case ObjectType.PlayAxis:
                persistable = new PlayAxis();
                break;

            case ObjectType.BandNavigationCell:
                persistable = new BandNavigationCell();
                break;

            case ObjectType.Tabstrip:
                persistable = new Tabstrip();
                break;

            case ObjectType.NavigationItem:
                persistable = new NavigationItem();
                break;

            case ObjectType.ScopedFieldInfo:
                persistable = new ScopedFieldInfo();
                break;

            default:
                Global.Tracer.Assert(condition: false, "Unsupported object type: " + objectType);
                break;
            }
            IDOwner iDOwner = persistable as IDOwner;

            if (iDOwner != null)
            {
                iDOwner.ParentInstancePath = m_parentIDOwner;
                m_parentIDOwner            = iDOwner;
            }
            persistable.Deserialize(context);
            m_parentIDOwner    = parentIDOwner;
            m_parentReportItem = parentReportItem;
            return(persistable);
        }
示例#46
0
    public static void Init()
    {
        if (m_isInit)
        {
            return;
        }
        InitCacheText();

        m_isInit = true;
        // 初始化性别
        ImageInfo sex1 = new ImageInfo();

        sex1.name = "s1";
        sex1.type = ImageType.playerInfo;
        sex1.x    = 40;
        sex1.y    = 40;
        s_imageList.Add(sex1.name, sex1);

        ImageInfo sex2 = new ImageInfo();

        sex2.name = "s2";
        sex2.type = ImageType.playerInfo;
        sex2.x    = 40;
        sex2.y    = 40;
        s_imageList.Add(sex2.name, sex2);

        // 初始化vip
        for (int i = 0; i < 9; i++)
        {
            ImageInfo vip = new ImageInfo();
            vip.name = "v" + (i + 1);
            vip.type = ImageType.playerInfo;
            vip.x    = 40;
            vip.y    = 40;
            s_imageList.Add(vip.name, vip);
        }

        // 初始化表情,名称是纯id
        for (int i = 1; i < m_faceInfoList.Count + 1; i++)
        {
            ImageInfo img = new ImageInfo();
            img.name = (i < 10) ? ("0" + i) : i.ToString();
            img.type = ImageType.face;
            img.x    = 40;
            img.y    = 40;
            // 表情是多张图,所以需要额外的参数去记录
            img.param = m_faceInfoList.ContainsKey(i) ? m_faceInfoList[i] : "0_1";
            s_imageList.Add(img.name, img);
        }

        //// 初始化道具图标
        //IconCsv itemCsv = CsvManager.Inst.GetCsv<IconCsv>((int)eAllCSV.eAC_Icon);
        //foreach(KeyValuePair<int, IconCsvData> item in itemCsv.m_dicData)
        //{
        //    ImageInfo img = new ImageInfo();
        //    img.name = IntToTwoStr(item.Value.iconId);    // 这里应该存图标ID
        //    img.type = ImageType.item;
        //    img.x = 40;
        //    img.y = 40;
        //    s_imageList.Add(img.name, img);
        //}
    }
示例#47
0
 internal extern static unsafe int GetImageInfo(IntPtr image, ImageInfo param_name, IntPtr param_value_size, IntPtr param_value, [OutAttribute] IntPtr *param_value_size_ret);
示例#48
0
 public PngChunkGAMA(ImageInfo info)
     : base(ID, info)
 {
 }
        public ImageInfo GetTodayImage()
        {
            var image = new ImageInfo();

            return(Images.AsNoTracking().Where(p => p.Name == image.Name).FirstOrDefault());
        }
示例#50
0
 void _onImageResolved(ImageInfo imageInfo)
 {
     this._imageInfo = imageInfo;
 }
 void IImageInfoRepository.Update(string id, ImageInfo imageInfo)
 {
     images.ReplaceOne(i => i.Id == id, imageInfo);
 }
示例#52
0
        private void Check(LoadTestDatabase db, CheckType type, UriInfo info, ResultData request)
        {
            switch (type)
            {
            case CheckType.Css:
            case CheckType.JS:
                String value    = request.ContentEncoding2.GetString(request.Data);
                String min      = minify(value);
                String expanded = expand(value);

                double percentMin = 100F - (((double)min.Length / (double)value.Length) * 100F);
                double percentExp = 100F - (((double)value.Length / (double)expanded.Length) * 100F);

                if (percentMin > 10)
                {
                    db.insertMessages(this.TestName, "5. Otimização de arquivos (minify *.js, *.css)", "URL: <a href=\"" + info.Target.AbsoluteUri + "\" target=\"_blank\">" + info.Target.AbsoluteUri + "</a>" + Environment.NewLine + (info.Referer != null ? "Referer: <a href=\"" + info.Referer.AbsoluteUri + "\" target=\"_blank\">" + info.Referer.AbsoluteUri + "</a>" + Environment.NewLine : "") + Environment.NewLine + "Redução estimada de: " + FileResources.formatData(percentMin, ChartDataType.Percent) + Environment.NewLine + "Tamanho original: " + FileResources.formatData(value.Length, ChartDataType.Bytes) + Environment.NewLine + "Tamanho reduzido: " + FileResources.formatData(min.Length, ChartDataType.Bytes));
                    db.insertOptimization(this.TestName, request.RequestUri, value.Length, min.Length);
                }

                if (percentExp > 3)
                {
                    db.insertNonOptimization(this.TestName, request.RequestUri, value.Length, expanded.Length);
                }

                break;

            case CheckType.Image:

                String text      = "";
                String imageInfo = "";

                imageInfo = "Tamanho: " + FileResources.formatData(request.DataLength, ChartDataType.Bytes) + Environment.NewLine;


                if (request.DataLength > (100 * 1024))     //100 Kb
                {
                    text += "* Tamanho da imagem acima de 100Kb" + Environment.NewLine;
                }



                using (MemoryStream stm = new MemoryStream(request.Data))
                    using (Image bmp = Image.FromStream(stm))
                    {
                        Boolean     resolution = false;
                        PixelFormat pxFormat   = PixelFormat.Format24bppRgb;
                        float       saveRes    = bmp.HorizontalResolution;

                        try
                        {
                            imageInfo += "Resolução: " + bmp.Width + " x " + bmp.Height + "px" + Environment.NewLine;
                        }
                        catch { }

                        try
                        {
                            if ((((Int32)bmp.HorizontalResolution) > 72) || (((Int32)bmp.VerticalResolution) > 72))
                            {
                                text += "* Qualidade (DPI) da imagem acima de 72" + Environment.NewLine;
                            }

                            imageInfo += "DPI: " + bmp.HorizontalResolution + Environment.NewLine;
                            resolution = true;
                            saveRes    = 72;
                        }
                        catch { }

                        try
                        {
                            switch (bmp.PixelFormat)
                            {
                            case System.Drawing.Imaging.PixelFormat.Format32bppArgb:
                            case System.Drawing.Imaging.PixelFormat.Format32bppPArgb:
                            case System.Drawing.Imaging.PixelFormat.Format32bppRgb:
                            case System.Drawing.Imaging.PixelFormat.Format48bppRgb:
                            case System.Drawing.Imaging.PixelFormat.Format64bppArgb:
                            case System.Drawing.Imaging.PixelFormat.Format64bppPArgb:
                                text      += "* Qualidade (Bit depth) da imagem acima de 24 bits" + Environment.NewLine;
                                resolution = true;
                                pxFormat   = PixelFormat.Format24bppRgb;
                                break;
                            }

                            switch (bmp.PixelFormat)
                            {
                            case System.Drawing.Imaging.PixelFormat.Format8bppIndexed:
                                imageInfo += "Bit depth: 16 bits" + Environment.NewLine;
                                pxFormat   = bmp.PixelFormat;
                                break;

                            case System.Drawing.Imaging.PixelFormat.Format16bppArgb1555:
                            case System.Drawing.Imaging.PixelFormat.Format16bppGrayScale:
                            case System.Drawing.Imaging.PixelFormat.Format16bppRgb555:
                            case System.Drawing.Imaging.PixelFormat.Format16bppRgb565:
                                imageInfo += "Bit depth: 16 bits" + Environment.NewLine;
                                pxFormat   = bmp.PixelFormat;
                                break;


                            case System.Drawing.Imaging.PixelFormat.Format24bppRgb:
                                imageInfo += "Bit depth: 24 bits" + Environment.NewLine;
                                pxFormat   = PixelFormat.Format24bppRgb;
                                break;

                            case System.Drawing.Imaging.PixelFormat.Format32bppArgb:
                            case System.Drawing.Imaging.PixelFormat.Format32bppPArgb:
                            case System.Drawing.Imaging.PixelFormat.Format32bppRgb:
                                imageInfo += "Bit depth: 32 bits" + Environment.NewLine;
                                pxFormat   = PixelFormat.Format24bppRgb;
                                break;

                            case System.Drawing.Imaging.PixelFormat.Format48bppRgb:
                                imageInfo += "Bit depth: 48 bits" + Environment.NewLine;
                                pxFormat   = PixelFormat.Format24bppRgb;
                                break;

                            case System.Drawing.Imaging.PixelFormat.Format64bppArgb:
                            case System.Drawing.Imaging.PixelFormat.Format64bppPArgb:
                                imageInfo += "Bit depth: 64 bits" + Environment.NewLine;
                                pxFormat   = PixelFormat.Format24bppRgb;
                                break;

                            default:
                                imageInfo += "Bit depth: " + bmp.PixelFormat.ToString() + Environment.NewLine;
                                break;
                            }
                        }
                        catch { }

                        try
                        {
                            using (ImageInfo imgInfo = new ImageInfo(bmp))
                            {
                                if (imgInfo.HasExif)
                                {
                                    text      += "* Imagem com informações EXIF. A remoção desta informação reduz o tamanho da imagem" + Environment.NewLine;
                                    resolution = true;
                                }
                            }
                        }
                        catch { }

                        //Realiza a Otimização sugerida e calcula o tamanho estimado a conseguir
                        if (resolution)
                        {
                            try
                            {
                                ImageFormat saveFormat = ImageFormat.Jpeg;
                                if (bmp.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Jpeg))
                                {
                                    saveFormat = System.Drawing.Imaging.ImageFormat.Jpeg;
                                }
                                if (bmp.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Bmp))
                                {
                                    saveFormat = System.Drawing.Imaging.ImageFormat.Bmp;
                                }
                                if (bmp.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Png))
                                {
                                    saveFormat = System.Drawing.Imaging.ImageFormat.Png;
                                }
                                if (bmp.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Emf))
                                {
                                    saveFormat = System.Drawing.Imaging.ImageFormat.Emf;
                                }
                                if (bmp.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Exif))
                                {
                                    saveFormat = System.Drawing.Imaging.ImageFormat.Exif;
                                }
                                if (bmp.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Gif))
                                {
                                    saveFormat = System.Drawing.Imaging.ImageFormat.Gif;
                                }
                                if (bmp.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Icon))
                                {
                                    saveFormat = System.Drawing.Imaging.ImageFormat.Icon;
                                }
                                if (bmp.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.MemoryBmp))
                                {
                                    saveFormat = System.Drawing.Imaging.ImageFormat.MemoryBmp;
                                }
                                if (bmp.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Tiff))
                                {
                                    saveFormat = System.Drawing.Imaging.ImageFormat.Tiff;
                                }
                                if (bmp.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Wmf))
                                {
                                    saveFormat = System.Drawing.Imaging.ImageFormat.Wmf;
                                }


                                Bitmap newImage = new Bitmap(bmp.Width, bmp.Height, pxFormat);
                                newImage.SetResolution(saveRes, saveRes);
                                Graphics g = Graphics.FromImage(newImage);
                                g.SmoothingMode     = SmoothingMode.AntiAlias;
                                g.InterpolationMode = InterpolationMode.HighQualityBicubic;
                                g.PixelOffsetMode   = PixelOffsetMode.HighQuality;
                                g.DrawImage(bmp, 0, 0);
                                g.Dispose();

                                MemoryStream newStm = new MemoryStream();
                                newImage.Save(newStm, saveFormat);

                                if (newStm.Length < request.DataLength)
                                {
                                    db.insertOptimization(this.TestName, request.RequestUri, request.DataLength, newStm.Length);

                                    double percent2 = 100F - (((double)newStm.Length / (double)request.DataLength) * 100F);

                                    text += Environment.NewLine;
                                    text += "Tamanho estimado após redução: " + FileResources.formatData(newStm.Length, ChartDataType.Bytes) + Environment.NewLine;
                                    text += "Redução estimada de: " + FileResources.formatData(percent2, ChartDataType.Percent) + Environment.NewLine;
                                }
                                else
                                {
                                    //Não há redução, a imagem está otimizada
                                    text = "";
                                }

                                newImage.Dispose();
                                newImage = null;
                                newStm.Dispose();
                                newStm = null;
                            }
                            catch (Exception ex)
                            {
#if DEBUG
                                text += "Erro ao calcular a redução: " + ex.Message;
#endif
                            }
                        }
                    }

                if (text != "")
                {
                    db.insertMessages(this.TestName, "6. Otimização de imagem", "Img URL: <a href=\"" + info.Target.AbsoluteUri + "\" target=\"_blank\">" + info.Target.AbsoluteUri + "</a>" + Environment.NewLine + (info.Referer != null ? "Referer: <a href=\"" + info.Referer.AbsoluteUri + "\" target=\"_blank\">" + info.Referer.AbsoluteUri + "</a>" + Environment.NewLine : "") + Environment.NewLine + imageInfo + Environment.NewLine + text);
                }

                break;
            }
        }
 void IImageInfoRepository.Create(ImageInfo imageInfo)
 {
     images.InsertOne(imageInfo);
 }
示例#54
0
        public bool SetMetadata(ImageInfo metadata)
        {
            _imageInfo.Comments = metadata.Comments;

            return(true);
        }
示例#55
0
        public EditIconDialog(IProject project, ProjectIconSet iconSet)
        {
            Glade.XML xml = new Glade.XML(null, "stetic.glade", "EditIconDialog", null);
            xml.Autoconnect(this);
            dialog.Response += OnResponse;

            this.project = project;
            this.iconSet = iconSet;

            nameEntry.Text = iconSet.Name;

            if (iconSet.Sources.Count == 0)
            {
                radioSingle.Active = true;
                imageLabel.Text    = "";
            }
            else if (iconSet.Sources.Count == 1 && iconSet.Sources[0].AllWildcarded)
            {
                radioSingle.Active = true;
                singleIcon         = iconSet.Sources[0].Image;
                if (singleIcon != null)
                {
                    imageLabel.Text   = singleIcon.Label;
                    imageImage.Pixbuf = singleIcon.GetThumbnail(project, 16);
                }
                else
                {
                    imageLabel.Text = "";
                }
            }
            else
            {
                radioMultiple.Active = true;
            }

            hboxSingle.Sensitive   = radioSingle.Active;
            hboxMultiple.Sensitive = !radioSingle.Active;

            // Build the tree

            sourceListStore  = new Gtk.ListStore(typeof(Gdk.Pixbuf), typeof(string), typeof(string), typeof(string), typeof(string), typeof(object));
            sourceList.Model = sourceListStore;

            Gtk.TreeViewColumn col = new Gtk.TreeViewColumn();

            Gtk.CellRendererPixbuf pr = new Gtk.CellRendererPixbuf();
            col.Title = Catalog.GetString("Image");
            col.PackStart(pr, false);
            col.AddAttribute(pr, "pixbuf", 0);

            Gtk.CellRendererText crt = new Gtk.CellRendererText();
            col.PackStart(crt, true);
            col.AddAttribute(crt, "text", 1);
            sourceList.AppendColumn(col);

            col        = new Gtk.TreeViewColumn();
            col.Expand = true;
            col.Title  = Catalog.GetString("Size");
            CellRendererComboBox crtb = new CellRendererComboBox();

            crtb.Changed += new ComboSelectionChangedHandler(OnSizeComboChanged);
            crtb.Values   = sizes;
            col.PackStart(crtb, true);
            col.AddAttribute(crtb, "text", 2);
            sourceList.AppendColumn(col);

            col           = new Gtk.TreeViewColumn();
            col.Expand    = true;
            col.Title     = Catalog.GetString("State");
            crtb          = new CellRendererComboBox();
            crtb.Changed += new ComboSelectionChangedHandler(OnStateComboChanged);
            crtb.Values   = states;
            col.PackStart(crtb, true);
            col.AddAttribute(crtb, "text", 3);
            sourceList.AppendColumn(col);

            col           = new Gtk.TreeViewColumn();
            col.Expand    = true;
            col.Title     = Catalog.GetString("Direction");
            crtb          = new CellRendererComboBox();
            crtb.Changed += new ComboSelectionChangedHandler(OnDirComboChanged);
            crtb.Values   = directions;
            col.PackStart(crtb, true);
            col.AddAttribute(crtb, "text", 4);
            sourceList.AppendColumn(col);

            foreach (ProjectIconSource source in iconSet.Sources)
            {
                AddSource(source);
            }

            UpdateButtons();
        }
示例#56
0
 void _handleImageChanged(ImageInfo imageInfo, bool synchronousCall)
 {
     this._imageInfo = imageInfo;
     this.listener();
 }
示例#57
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="imageInfo"></param>
 public ImageEncoder(ImageInfo imageInfo)
 {
     _imageInformation = imageInfo;
 }
示例#58
0
        static void Main(string[] args)
        {
            try
            {
                Console.WriteLine("Creating context");
                var context = new ApiDbContext();
                Console.WriteLine("Created");


                var usersRepository = new UsersRepository(context);

                var res = usersRepository.FetchRecords();

                Console.WriteLine();
                Console.WriteLine("All users");
                foreach (var r in res)
                {
                    Console.WriteLine(r.ToString());
                }
                Console.WriteLine();


                var newUser = new User()
                {
                    AccessToken  = "token1234",
                    CreationTime = DateTime.Now,
                    SessionId    = 3,
                    Password     = "******",
                    Username     = "******",
                    UserType     = 0
                };


                var insertResult = usersRepository.AddRecord(newUser);
                Console.WriteLine(insertResult);



                Console.WriteLine();
                Console.WriteLine();

                var certain_user = context
                                   .Set <User>()
                                   .Where(e => e.Username == "*****@*****.**")
                                   .First();

                if (certain_user != null)
                {
                    Console.WriteLine("Addind new session");

                    var newSession = new Session()
                    {
                        CreationTime   = DateTime.Now,
                        ExpiryDate     = DateTime.Now.AddMonths(1),
                        ImageCount     = 0,
                        IsLimitReached = false,
                        PlatesCount    = 0,
                        SessionType    = certain_user.UserType,
                        UserId         = certain_user.Id,
                        User           = certain_user
                    };

                    context.Sessions.Add(newSession);
                    context.SaveChanges();
                }


                Console.WriteLine();
                Console.WriteLine("Eager fetch?");
                Console.WriteLine();
                Console.WriteLine();

                var AllUsers = context.Set <User>().ToList();

                foreach (var u in AllUsers)
                {
                    Console.WriteLine(u.ToString());
                }


                Console.ReadKey();


                Console.WriteLine();
                Console.WriteLine("Show all sessions");
                Console.WriteLine();
                Console.WriteLine();


                var allSession = context.Set <Session>().ToList();

                foreach (var s in allSession)
                {
                    Console.WriteLine(s.ToString());
                }


                Console.WriteLine();
                Console.WriteLine($@"Show session with UserId = {certain_user.Id}");
                Console.WriteLine();
                Console.WriteLine();

                var certainSession = context.Set <Session>().Where(p => p.UserId == certain_user.Id).ToList();

                foreach (var a in certainSession)
                {
                    Console.WriteLine(a.ToString());
                }

                Console.ReadKey();

                Console.WriteLine();
                Console.WriteLine("Checking limit");

                var checkingUser = context
                                   .Set <User>()
                                   .Where(e => e.Username == "*****@*****.**")
                                   .First();

                long i = checkingUser.Id;

                var checkingSession = context.Set <Session>().Where(p => p.UserId == i).ToList().LastOrDefault();

                Console.WriteLine();
                if (checkingSession != null)
                {
                    var limit      = checkingSession.IsLimitReached;
                    var limitCount = checkingSession.ImageCount;

                    checkingSession.IsLimitReached = true;

                    Console.WriteLine("Limit reached : true");
                    context.SaveChanges();
                }

                var newImage = new ImageInfo
                {
                    ImagePath  = "ddsf",
                    MarkupPath = "dsfdf",

                    PlatesCount = 1,
                    SessionId   = checkingSession.Id,
                    UploadDate  = DateTime.Now,
                    UserId      = checkingSession.UserId
                };

                context.Images.Add(newImage);
                context.SaveChanges();
            }

            catch (Exception exc)
            {
                Console.WriteLine(exc.Message);

                Console.ReadKey();
            }
        }
示例#59
0
 public PngChunkIHDR(ImageInfo info)
     : base(ID, info)
 {
 }
示例#60
0
 public ImageLine(ImageInfo imgInfo, ESampleType stype)
     : this(imgInfo, stype, false)
 {
 }