Comment ajouter de l'image de filigrane Tout en téléchargeant l'image dans ASP.NET MVC. J'utilise jQuery.uploadfile.min.js Multiple Fichier téléchargement pour l'image de téléchargement. Voulez-vous ajouter automatiquement l'image logo stockée (filigrane) pour ajouter dans mon fichier image que je vais télécharger.
en vue: p> in gestionnaire: P> > public void UploadProductImage()
{
int ProductID = Convert.ToInt32(clsEncrypt.Decrypt(HttpContext.Current.Request["ProductID"]));
string PhysicalFolderPath = "~/Images/Product/";
for (int j = 0; j < HttpContext.Current.Request.Files.Count; j++)
{
HttpPostedFile uploadFile = HttpContext.Current.Request.Files[j];
string extention = System.IO.Path.GetExtension(uploadFile.FileName);
UploadPic(uploadFile, j++, PhysicalFolderPath, ProductID);
}
}
protected void UploadPic(HttpPostedFile FUPhoto, int sort, string RemotePath, int ProductID)
{
if (FUPhoto.FileName != "")
{
string ImgUploadResponse = "";
string strExt = Path.GetExtension(FUPhoto.FileName).Trim().ToLower();
string ImageName = DateTime.Now.ToFileTimeUtc() + strExt;
string OriginalImageFullPath = "~/Images/Product/" + ImageName;
if (Directory.Exists(HttpContext.Current.Server.MapPath("~/Images/Product/")).Equals(false))
Directory.CreateDirectory(HttpContext.Current.Server.MapPath("~/Images/Product/"));
FUPhoto.SaveAs(HttpContext.Current.Server.MapPath(OriginalImageFullPath));
ProductImageEntity objProdImage = new ProductImageEntity();
objProdImage.ProductID = ProductID;
if (ImgUploadResponse != "")
objProdImage.Image = "";
else
objProdImage.Image = ImageName;
if (!String.IsNullOrEmpty(objProdImage.Image))
new ProductImageBLL().InsertUpdateProductImage(objProdImage);
}
}
3 Réponses :
Veuillez vous référer au code ci-dessous pour le logo Watermark pour ajouter du côté du code.
using (Image image = Image.FromFile(@"C:\Users\Public\Pictures\Sample Pictures\Desert.jpg"))
using (Image watermarkImage = Image.FromFile(@"C:\Users\Public\Pictures\Sample Pictures\watermark.png"))
using (Graphics imageGraphics = Graphics.FromImage(image))
using (TextureBrush watermarkBrush = new TextureBrush(watermarkImage))
{
int x = (image.Width / 2 - watermarkImage.Width / 2);
int y = (image.Height / 2 - watermarkImage.Height / 2);
watermarkBrush.TranslateTransform(x, y);
imageGraphics.FillRectangle(watermarkBrush, new Rectangle(new Point(x, y), new Size(watermarkImage.Width+1, watermarkImage.Height)));
image.Save(@"C:\Users\Public\Pictures\Sample Pictures\Desert_watermark.jpg");
}
Bienvenue, pas de problème.
Récemment, j'ai publié un package de pépite qui ajoutez une marque d'eau d'image avec le contrôle sur l'opacité et la tache cibles pour placer le filigrane. Nugget: p>
alors vous pouvez utiliser le code ci-dessous: P> Install-package Lazziya.imageresize code> p> //get image from local path
var img = Image.FromFile("wwwroot\\images\\lum3n-358833-unsplash.jpg");
//scale and crop, 600x250 center focus
var newImg = ImageResize.ScaleAndCrop(img, 600, 250, TargetSpot.Center);
//watermark image path
var imgWatermark = "wwwroot\\images\\icon.png";
//add image watermark
newImg.ImageWatermark(imgWatermark,
TargetSpot.TopRight, //define target spot
10, //margin
37); //opacity (0-100)
//save new image
newImg.SaveAs("wwwroot\\images\\600x250-image-watermark.jpg");
//dispose to free up memory
img.Dispose();
newImg.Dispose();
Il y a déjà beaucoup de bibliothèques d'imagerie disponibles, pourquoi créer encore une autre? En outre, pourquoi utiliser System.Drawing?
Pourquoi une autre bibliothèque? identique à la raison pour laquelle un autre système d'exploitation? Pourquoi une autre voiture? Pourquoi un autre produit avec des caractéristiques similaires mais compétitives? System.Drawing Code> Utilisé pour accéder à image code> classe.
Je ne vois pas de fonctionnalités compétitives par rapport aux autres bibliothèques de traitement d'images plus activement testées, plus riches en termes de fonctionnalités. Vous connaissez le problème avec System.Drawing? Voir par exemple Hanselman.com/blog/howdoyouxystemDrawinginNetCore.aspx .
Oui, je suis au courant de cette question et je connais également le reste des bibliothèques. Mais cela ne signifie pas que je dois abandonner ou ne jamais faire un nouveau départ. Les alternatives existeront tout le temps.
BTW, j'utilise system.drawing.common code> la mise en œuvre Microsoft-entretenue de System.Drawing code> pour .NET Core.
J'ai installé et essayé votre DLL. Tout est bon mais un problème. Le texte de filigrane est ajouté verticalement aux images verticales (images dont la hauteur est plus grande que la largeur). Une meilleure solution consiste à ajouter du filigrane dans une ligne horizantique aux images verticales ainsi que des images horizantatives. Merci quand même.
- Edit - P>
J'ai résolu le problème dans ce code, qui vérifie et modifie l'orientation de l'image dans le besoin. (UploadEDImage est l'image que j'ai lu depuis le flux) p>
Stackoverflow.com/Questtions/12870137/... < / a>
Aucun problème. Je viens de googler "C # Ajouter un filigrane à l'image". Il y a probablement beaucoup d'autres guides que vous pourriez suivre aussi, à partir des résultats de la recherche. Avez-vous fait des recherches de votre part?
Je le googla, mais je n'ai trouvé aucune solution appropriée, j'avais en fait le résultat de l'ajout de texte de filigrane tout en téléchargeant une image, mais je voulais que l'image filigrane soit ajoutée dans ma photo. Pas de problème adyson :) Merci encore! Passe une bonne journée.
@Adyson en utilisant (graphiques imageGraphics = graphiques.fromimage (image)) Cette ligne donnant une exception de mémoire.