Pour ma première source, je vous propose une librairie permettant de réaliser plusieurs type de modifications sur une image, comme redimensionnement en concervant ou non le ratio, crop, watermark avec possibilité de choisir la position et gestion automatique de la taille de la police pour que le texte ne déborde pas de l'image, et plusieurs autres effets... je vous laisse découvrir tout ça dans le zip
Source / Exemple :
string Filename = this.fu.FileName.Replace(' ', '_');
this.fu.SaveAs(this.Folder + Filename);
ImageWork IW = new ImageWork(this.Folder + Filename, true);
if (IW.FileFormat != null)
{
if (this.cb_ratio.Checked)
IW.ResizeRatio(int.Parse(this.ddl_size.SelectedValue.Split(new char[] { '|' })[0]), int.Parse(this.ddl_size.SelectedValue.Split(new char[] { '|' })[1]));
else
IW.Resize(int.Parse(this.ddl_size.SelectedValue.Split(new char[] { '|' })[0]), int.Parse(this.ddl_size.SelectedValue.Split(new char[] { '|' })[1]));
if (this.txt_watermark.Text != "")
{
switch (this.ddl_watermark_color.SelectedIndex)
{
case 0:
IW.TextColor = System.Drawing.Brushes.Black;
break;
case 1:
IW.TextColor = System.Drawing.Brushes.White;
break;
case 2:
IW.TextColor = System.Drawing.Brushes.Red;
break;
case 3:
IW.TextColor = System.Drawing.Brushes.Green;
break;
case 4:
IW.TextColor = System.Drawing.Brushes.Blue;
break;
case 5:
IW.TextColor = System.Drawing.Brushes.Yellow;
break;
}
if (this.ddl_watermark_backcolor.SelectedValue != "")
{
int R = int.Parse(this.ddl_watermark_backcolor.SelectedValue.Split(new char[] { '|' })[0]);
int G = int.Parse(this.ddl_watermark_backcolor.SelectedValue.Split(new char[] { '|' })[1]);
int B = int.Parse(this.ddl_watermark_backcolor.SelectedValue.Split(new char[] { '|' })[2]);
IW.WatermarkBackground = System.Drawing.Color.FromArgb(R,G,B);
}
float FontSize=IW.GetWatermarkFontSize(this.txt_watermark.Text,this.ddl_watermark_font.SelectedValue,float.Parse(this.ddl_watermark_size.SelectedValue));
IW.TextFont =new System.Drawing.Font(this.ddl_watermark_font.SelectedValue,FontSize);
switch (this.ddl_watermark_position.SelectedIndex)
{
case 0:
IW.Watermark(this.txt_watermark.Text,Position.TopLeft);
break;
case 1:
IW.Watermark(this.txt_watermark.Text, Position.TopCenter);
break;
case 2:
IW.Watermark(this.txt_watermark.Text, Position.TopRight);
break;
case 3:
IW.Watermark(this.txt_watermark.Text, Position.MiddleLeft);
break;
case 4:
IW.Watermark(this.txt_watermark.Text, Position.MiddleCenter);
break;
case 5:
IW.Watermark(this.txt_watermark.Text, Position.MiddleRight);
break;
case 6:
IW.Watermark(this.txt_watermark.Text, Position.BottomLeft);
break;
case 7:
IW.Watermark(this.txt_watermark.Text, Position.BottomCenter);
break;
case 8:
IW.Watermark(this.txt_watermark.Text, Position.BottomRight);
break;
}
IW.SaveMemory(this.Folder + Filename);
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.