📄 portraitexhelper.cs
字号:
namespace Imps.Client.Pc
{
using Imps.Client.Core;
using Imps.Client.Utils;
using Imps.Utils;
using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Windows.Forms;
internal class PortraitExHelper
{
public static void SaveContactPortrait(SaveFileDialog saveFileDialog, Contact contact, IWin32Window wnd)
{
try
{
if ((contact != null) && (contact.PersonalInfo.Portrait != null))
{
Image portrait = contact.PersonalInfo.Portrait;
saveFileDialog.InitialDirectory = Environment.SpecialFolder.Personal.ToString();
saveFileDialog.Filter = string.Format("*.{0}|*.{0}", "jpg");
saveFileDialog.FileName = "未命名";
if (saveFileDialog.ShowDialog(wnd) == DialogResult.OK)
{
portrait.Save(saveFileDialog.FileName);
}
}
}
catch (Exception exception)
{
ClientLogger.WriteException(exception);
}
}
public static void UseContactPortrait(User user, Contact contact, IFrameworkWindow ifwnd, IWin32Window owner)
{
EventHandler<ImpsErrorEventArgs> handler = null;
if ((contact != null) && (contact.PersonalInfo.Portrait != null))
{
try
{
Image newPortrait = (Image) contact.PersonalInfo.Portrait.Clone();
if (user.Configuration.UserSetting.SaveMyInfo)
{
if (!Directory.Exists(user.PersistentManager.BaseDirForMyUsedPortrait))
{
Directory.CreateDirectory(user.PersistentManager.BaseDirForMyUsedPortrait);
}
string text = user.PersistentManager.BaseDirForMyUsedPortrait + contact.Uri.Id.ToString();
string path = text + ".dat";
if (File.Exists(path))
{
int num = 1;
while (true)
{
path = text + "-" + num.ToString() + ".dat";
if (!File.Exists(path))
{
break;
}
num++;
}
}
try
{
newPortrait.Save(path, ImageHelper.GetImageCodecInfo(ImageFormat.Jpeg), ImageHelper.JpegParms());
}
catch
{
if (File.Exists(path))
{
File.Delete(path);
}
ifwnd.UnifiedMessageBox.ShowInfo(owner, "设置头像失败。");
return;
}
user.Configuration.UserSetting.ConversationSetting.CurrentPortraitFileInfo = string.Format("{0},{1}", 1, path);
}
AsyncBizOperation op = new AsyncBizOperation();
if (handler == null)
{
<>c__DisplayClass2 class2;
handler = new EventHandler<ImpsErrorEventArgs>(class2, (IntPtr) this.<UseContactPortrait>b__0);
}
op.ImpsError += handler;
user.PortraitDownloader.AsyncUploadPortrait(newPortrait, op);
}
catch (Exception exception)
{
ClientLogger.WriteException(exception);
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -