public Dictionary <string, string> GetMetadata(ThumbInfo info) { var dict = new Dictionary <string, string>(); if (entryOffsets.Length == 0) { return(dict); } if (info == null) { return(dict); } dict.Add("File offset", info.fileOffset.ToString()); dict.Add("Entry size", info.entrySize.ToString()); dict.Add("Entry hash", info.entryHash.ToString("X16")); dict.Add("Filename length", info.fileNameLength.ToString()); dict.Add("Padding length", info.paddingLength.ToString()); dict.Add("Data length", info.dataLength.ToString()); dict.Add("Image width", info.imageWidth.ToString()); dict.Add("Image height", info.imageHeight.ToString()); dict.Add("Data checksum", info.dataChecksum.ToString("X16")); dict.Add("Header checksum", info.headerChecksum.ToString("X16")); return(dict); }
private void OnEnable() { mThumInfo = new ThumbInfo(); blockGroups = new List <BlockDataGroup>(); for (int i = 0; i < categoryNames.Length; i++) { blockGroups.AddRange(BlockDataGroupFactory.Instance.GetGroupsByCategory((Category)i)); } searchText = ""; var colors = PBDataBaseManager.Instance.GetBlockColorDatas(); colors.Sort((p1, p2) => String.Compare(p1.code, p2.code, StringComparison.Ordinal)); var t = colors.Select(color => color.color).ToList(); t.Insert(0, "所有"); mColorNames = t.ToArray(); mColorToggles = new bool[colors.Count + 1]; for (int i = 0; i < mColorToggles.Length; i++) { mColorToggles[i] = i == 0; } UpdateLightNames(); }
private void testConfigString(String cfgString) { Dictionary <String, ThumbInfo> cfgList = ThumbConfig.ReadString(cfgString); Assert.AreEqual(4, cfgList.Count); ThumbInfo x = cfgList["s"]; Assert.AreEqual(75, x.Width); Assert.AreEqual(75, x.Height); Assert.AreEqual(SaveThumbnailMode.Auto, x.Mode); x = cfgList["sx"]; Assert.AreEqual(200, x.Width); Assert.AreEqual(200, x.Height); Assert.AreEqual(SaveThumbnailMode.Auto, x.Mode); x = cfgList["m"]; Assert.AreEqual(600, x.Width); Assert.AreEqual(600, x.Height); Assert.AreEqual(SaveThumbnailMode.Auto, x.Mode); x = cfgList["b"]; Assert.AreEqual(1024, x.Width); Assert.AreEqual(1024, x.Height); Assert.AreEqual(SaveThumbnailMode.Auto, x.Mode); }
public static Boolean SaveThumbSingle(String filename, String suffix, ThumbInfo x) { try { using (Image img = Image.FromFile(filename)) { String destPath = Img.GetThumbPath(filename, suffix); if (file.Exists(destPath)) { file.Delete(destPath); } if (img.Size.Width <= x.Width && img.Size.Height <= x.Height) { File.Copy(filename, destPath); } else if (img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Gif) && ImageAnimator.CanAnimate(img)) { File.Copy(filename, destPath); } else { Img.SaveThumbnail(filename, destPath, x.Width, x.Height, x.Mode); } } return(true); } catch (OutOfMemoryException ex) { logger.Error("file format error: " + filename); return(false); } }
public static Boolean SaveThumbSingle(String srcPath, String suffix, ThumbInfo thumbInfo) { String thumbPath = Img.GetThumbPath(srcPath, suffix); int x = thumbInfo.Width; int y = thumbInfo.Height; try { using (Image img = Image.FromFile(srcPath)) { if (file.Exists(thumbPath)) { file.Delete(thumbPath); } if (img.Size.Width <= x && img.Size.Height <= y) { File.Copy(srcPath, thumbPath); } else if (img.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Gif) && ImageAnimator.CanAnimate(img)) { File.Copy(srcPath, thumbPath); } else { logger.Info("save thumbnail..." + suffix + ": " + srcPath + "=>" + thumbPath); Img.SaveThumbnail(srcPath, thumbPath, x, y, thumbInfo.Mode); } return(true); } } catch (OutOfMemoryException ex) { logger.Error("file format error: " + srcPath); return(false); } }
private static int getCfgWidth() { ThumbInfo t = ThumbConfig.GetPhoto("sx"); if (t == null) { return(170); } return(t.Width); }
public void testThumbConfig() { String cfgString = "s=width:75|height:75|mode:auto, sx=width:200|height:200|mode:auto, m=width:600|height:600|mode:auto, b=width:1024|height:1024|mode:auto"; testConfigString(cfgString); // 加上多余空格 cfgString = " s=width:75|height:75|mode:auto, sx=width:200|height:200|mode:auto, m=width:600|height:600|mode:auto, b=width:1024|height:1024|mode:auto "; testConfigString(cfgString); // 加上大小写 cfgString = " s = width:75 | HeiGht:75 | mode:auto, SX=width:200|height:200|mode:auto, m=width : 600 |height:600| Mode : auto, b = width:1024 | height:1024| mode:auto "; testConfigString(cfgString); // 边界测试 cfgString = " "; Dictionary <String, ThumbInfo> cfgList = ThumbConfig.ReadString(cfgString); Assert.AreEqual(0, cfgList.Count); cfgString = null; cfgList = ThumbConfig.ReadString(cfgString); Assert.AreEqual(0, cfgList.Count); cfgString = " aaaaaaaaaaaaa, SX=width:200|height:200|mode:auto, m=width : 600 |height:600| Mode : cut, o "; cfgList = ThumbConfig.ReadString(cfgString); Assert.AreEqual(2, cfgList.Count); ThumbInfo x = cfgList["sx"]; Assert.AreEqual(200, x.Width); Assert.AreEqual(200, x.Height); Assert.AreEqual(SaveThumbnailMode.Auto, x.Mode); x = cfgList["m"]; Assert.AreEqual(600, x.Width); Assert.AreEqual(600, x.Height); Assert.AreEqual(SaveThumbnailMode.Cut, x.Mode); }