public void FileName_CreatedWithImageOnly_Null() { using (var pi = PalasoImage.FromImage(new Bitmap(10, 10))) { Assert.IsNull(pi.FileName); } }
public void ShowToolboxWith_PreExisting_EnsureRawFormatUnchanged() { Application.EnableVisualStyles(); PalasoImage i = PalasoImage.FromImage(TestImages.logo); using (var dlg = new ImageToolboxDialog(i, "")) { dlg.ShowDialog(); Assert.AreEqual(ImageFormat.Jpeg.Guid, dlg.ImageInfo.Image.RawFormat.Guid); } }
public void ShowToolboxWith_PreExisting_Image_WithMetadata() { Application.EnableVisualStyles(); PalasoImage i = PalasoImage.FromImage(LicenseLogos.by_nd); i.Metadata.License = new CreativeCommonsLicense(true, true, CreativeCommonsLicense.DerivativeRules.DerivativesWithShareAndShareAlike); i.Metadata.CopyrightNotice = "Copyright 1992 Papua New Guinea Department of Education and Other Good Things"; i.Metadata.CollectionName = "International Illustrations: The Art Of Reading"; i.Metadata.Creator = "Various Talented Illustrators"; //using (var f = TempFile.WithExtension(".png")) { //i.Save(f.Path); using (var dlg = new ImageToolboxDialog(i, "arrow")) { dlg.ShowDialog(); } } }
private static void RoundTripImageThenCheckPixelFormat(string extension, ImageFormat imageFormat, PixelFormat pixelFormat) { using (var originalBitmap = new Bitmap(10, 10, pixelFormat)) using (var saved = TempFile.WithExtension(extension)) { using (var palasoImageToSave = PalasoImage.FromImage(originalBitmap)) { palasoImageToSave.Save(saved.Path); } using (var palasoImageToSave = PalasoImage.FromFile(saved.Path)) { Assert.AreEqual(pixelFormat, palasoImageToSave.Image.PixelFormat, "Format was lost when loading into palaso image"); } using (var loaded = Image.FromFile(saved.Path)) { Assert.AreEqual(pixelFormat, loaded.PixelFormat, "Format was lost when loading into plain .net Image"); } } }
public void FromImage_NullImage_Throws() { Assert.Throws <ArgumentNullException>( () => PalasoImage.FromImage(null)); }
public static PalasoImage GetImageFromClipboard() { // N.B.: PalasoImage does not handle .svg files #if MONO if (GtkContainsImage()) { return(PalasoImage.FromImage(GtkGetImage())); } if (GtkContainsText()) { //REVIEW: I can find no documentation on GtkClipboard. If ContainsText means we have a file // path, then it would be better to do PalasoImage.FromFileRobustly(); on the file path return(PalasoImage.FromImage(GtkGetImageFromText())); } return(null); #else var dataObject = Clipboard.GetDataObject(); if (dataObject == null) { return(null); } var textData = String.Empty; if (dataObject.GetDataPresent(DataFormats.UnicodeText)) { textData = dataObject.GetData(DataFormats.UnicodeText) as String; } if (Clipboard.ContainsImage()) { PalasoImage plainImage = null; try { plainImage = PalasoImage.FromImage(Clipboard.GetImage()); // this method won't copy any metadata var haveFileUrl = !String.IsNullOrEmpty(textData) && RobustFile.Exists(textData); // If we have an image on the clipboard, and we also have text that is a valid url to an image file, // use the url to create a PalasoImage (which will pull in any metadata associated with the image too) if (haveFileUrl) { var imageWithPathAndMaybeMetadata = PalasoImage.FromFileRobustly(textData); plainImage.Dispose(); //important: don't do this until we've successfully created the imageWithPathAndMaybeMetadata return(imageWithPathAndMaybeMetadata); } else { return(plainImage); } } catch (Exception e) { Logger.WriteEvent("PortableClipboard.GetImageFromClipboard() failed with message " + e.Message); return(plainImage); // at worst, we should return null; if FromFile() failed, we return an image } } // the ContainsImage() returns false when copying an PNG from MS Word // so here we explicitly ask for a PNG and see if we can convert it. if (dataObject.GetDataPresent("PNG")) { var o = dataObject.GetData("PNG") as Stream; try { return(PalasoImage.FromImage(Image.FromStream(o))); } catch (Exception) {} } //People can do a "copy" from the WIndows Photo Viewer but what it puts on the clipboard is a path, not an image if (dataObject.GetDataPresent(DataFormats.FileDrop)) { //This line gets all the file paths that were selected in explorer string[] files = dataObject.GetData(DataFormats.FileDrop) as string[]; if (files == null) { return(null); } foreach (var file in files.Where(f => RobustFile.Exists(f))) { try { return(PalasoImage.FromFileRobustly(file)); } catch (Exception) {} } return(null); //not an image } if (!Clipboard.ContainsText() || !RobustFile.Exists(Clipboard.GetText())) { return(null); } try { return(PalasoImage.FromImage(Image.FromStream(new FileStream(Clipboard.GetText(), FileMode.Open)))); } catch (Exception) {} return(null); #endif }