Простые базовые библиотеки .Net. Вы можете изменить его в соответствии с вашим требованием. Основная цель - создать профиль пользователя Аватар, если пользователь не использует определенное изображение для профиля по умолчанию, будет использоваться. Два обычных типа изображений, которые нам нужно сделать Прямоугольник & Круг.
Для Круга изображения
public MemoryStream GenerateCircle(string firstName, string lastName)
{
var avatarString = string.Format("{0}{1}", firstName[0], lastName[0]).ToUpper();
var randomIndex = new Random().Next(0, _BackgroundColours.Count - 1);
var bgColour = _BackgroundColours[randomIndex];
var bmp = new Bitmap(192, 192);
var sf = new StringFormat();
sf.Alignment = StringAlignment.Center;
sf.LineAlignment = StringAlignment.Center;
var font = new Font("Arial", 72, FontStyle.Bold, GraphicsUnit.Pixel);
var graphics = Graphics.FromImage(bmp);
graphics.Clear(Color.Transparent);
graphics.SmoothingMode = SmoothingMode.AntiAlias;
graphics.TextRenderingHint = TextRenderingHint.ClearTypeGridFit;
using (Brush b = new SolidBrush(ColorTranslator.FromHtml("#" + bgColour)))
{
graphics.FillEllipse(b, new Rectangle(0, 0, 192, 192));
}
graphics.DrawString(avatarString, font, new SolidBrush(Color.WhiteSmoke), 95, 100, sf);
graphics.Flush();
var ms = new MemoryStream();
bmp.Save(ms, ImageFormat.Png);
return ms;
}
Для Прямоугольник изображения:
public MemoryStream GenerateRactangle(string firstName, string lastName)
{
var avatarString = string.Format("{0}{1}", firstName[0], lastName[0]).ToUpper();
var randomIndex = new Random().Next(0, _BackgroundColours.Count - 1);
var bgColour = _BackgroundColours[randomIndex];
var bmp = new Bitmap(192, 192);
var sf = new StringFormat();
sf.Alignment = StringAlignment.Center;
sf.LineAlignment = StringAlignment.Center;
var font = new Font("Arial", 72, FontStyle.Bold, GraphicsUnit.Pixel);
var graphics = Graphics.FromImage(bmp);
graphics.Clear((Color)new ColorConverter().ConvertFromString("#" + bgColour));
graphics.SmoothingMode = SmoothingMode.AntiAlias;
graphics.TextRenderingHint = TextRenderingHint.ClearTypeGridFit;
graphics.DrawString(avatarString, font, new SolidBrush(Color.WhiteSmoke), new RectangleF(0, 0, 192, 192), sf);
graphics.Flush();
var ms = new MemoryStream();
bmp.Save(ms, ImageFormat.Png);
return ms;
}
Для создания фона случайных цветов можно использовать:
private List<string> _BackgroundColours = new List<string> { "339966", "3366CC", "CC33FF", "FF5050" };
я надеюсь, что это поможет вашим, пожалуйста, передайте ваши предложения по его улучшению.
DId вы сдаете? –
проверить этот url [создать изображение аватара круга] (http://stackoverflow.com/questions/28527390/create-a-circle-avatar-image-in-net) – Cagdas