/// <summary> /// Saves the specified bitmap. /// </summary> /// <param name="bitmap">The bitmap.</param> /// <param name="format">The format.</param> /// <param name="folder">The folder.</param> /// <param name="title">The title.</param> /// <returns>The path to the saved bitmap, null if not saved.</returns> public static string Save(Bitmap bitmap, ImageFormat format, string folder, string title) { var fileName = string.Format(CultureInfo.CurrentCulture, "{0}_{1}_{2}.png", title, DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss-fff", CultureInfo.CurrentCulture), "fullscreen"); fileName = Regex.Replace(fileName, "[^0-9a-zA-Z._]+", "_"); fileName = NameHelper.ShortenFileName(folder, fileName, "_", 255); var filePath = Path.Combine(folder, fileName); if (bitmap == null) { Logger.Error("Full screenshot is not saved"); } else { bitmap.Save(filePath, format); bitmap.Dispose(); Logger.Error(CultureInfo.CurrentCulture, "Test failed: full screenshot saved to {0}.", filePath); FilesHelper.WaitForFileOfGivenName(BaseConfiguration.ShortTimeout, fileName, folder); Console.WriteLine(string.Format(CultureInfo.CurrentCulture, "##teamcity[publishArtifacts '{0}']", filePath)); return(filePath); } return(null); }