Imagework - librairie de transformations d'images

Soyez le premier à donner votre avis sur cette source.

Vue 5 996 fois - Téléchargée 719 fois

Description

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);

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
134
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
23 décembre 2009

Parfait. Merci beaucoup :)
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
21
Dommage que l'on ne puisse pas travailler en "direct" sur le contenu d'une picturebox.
Dans l'attente d'une petite application de démo...

Sinon bonne source, bonne continuation ++
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
49
Probablement très bien, mais il manque cruellement une petite application pour nons montrer rapidement ce qu'on peut faire avec cette lib....

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.