/// <summary> /// サムネイル画像を保存する。 /// </summary> /// <param name="photoName">写真名</param> /// <param name="newImage">サムネイル化する画像</param> public static void SaveImage(string photoName, Bitmap newImage) { try { Bitmap image = PhotoChatImage.ResizeImage( newImage, PhotoChat.ThumbnailWidth, PhotoChat.ThumbnailHeight); image.Save(GetImageFilePath(photoName), ImageFormat.Jpeg); image.Dispose(); } catch (Exception e) { PhotoChat.WriteErrorLog(e.ToString()); } }
/// <summary> /// サムネイル画像を更新する。 /// </summary> /// <param name="newImage">更新</param> public void UpdateImage(Bitmap newImage) { try { if (Interlocked.Exchange(ref needImageUpdate, 0) != 0) { SaveImage(photoName, newImage); Image temp = image; this.image = PhotoChatImage.ResizeImage(newImage, imageWidth, imageHeight); if (temp != null) { temp.Dispose(); } } } catch (Exception e) { PhotoChat.WriteErrorLog(e.ToString()); } }
/// <summary> /// 指定したサイズにサムネイル画像を縮小して返す。 /// ただし指定サイズが画像ファイル以上の場合はサイズ変換しない。 /// サムネイル画像がまだ無い場合はnullを返す。 /// </summary> /// <param name="photoName">写真名</param> /// <param name="width">サムネイルの幅</param> /// <param name="height">サムネイルの高さ</param> /// <returns>指定したサイズのサムネイル画像。画像がない場合はnull。</returns> public static Bitmap GetImage(string photoName, int width, int height) { try { // 画像ファイルが存在するか確認 string filePath = GetImageFilePath(photoName); if (!File.Exists(filePath)) { return(null); } // 画像を指定サイズに変換して返す Bitmap original = new Bitmap(filePath); Bitmap image = PhotoChatImage.ResizeImage(original, width, height); original.Dispose(); return(image); } catch (Exception e) { PhotoChat.WriteErrorLog(e.ToString()); return(null); } }