Je fais un outil de recadrage pour les images et je ne peux pas pour la vie de me comprendre pourquoi elle produit des images qui elle produit ...Quel est le problème avec cette image cropper?
Je suis la réponse acceptée here, mais il est encore être bizarre ... Voici mon code:
public void Crop(
string FileName,
Crop Crop) {
using (Bitmap Source = ((Bitmap)Image.FromFile(FileName))) {
using (Bitmap Target = new Bitmap(Crop.Width, Crop.Height)) {
using (Graphics Graphics = Graphics.FromImage(Target)) {
Graphics.DrawImage(Source, new Rectangle(new Point(Crop.Left, Crop.Top), new Size(Crop.Width, Crop.Height)), new Rectangle(new Point(0, 0), new Size(Target.Width, Target.Height)), GraphicsUnit.Pixel);
};
Target.Save((FileName + ".temp"), JpegCodecInfo, HighQualityEncoder);
};
};
this.NormalizeFileName(FileName);
}
Aidez-moi s'il vous plaît. Je joins une image de ce que je veux ...
MISE À JOUR
Pour @Aaronontheweb, voici la classe Crop
et comment il est peuplé:
public class Crop {
[Required]
public short Height { get; set; }
[Required]
public short Left { get; set; }
[Required]
public short Top { get; set; }
[Required]
public short Width { get; set; }
}
Et le jQuery qui renseigne le:
$("#Image input:submit").bind("click", function() {
$("#Crop\\.Height").val(Crop.height());
$("#Crop\\.Left").val(Crop.position().left);
$("#Crop\\.Top").val(Crop.position().top);
$("#Crop\\.Width").val(Crop.width());
});
MISE À JOUR 2
Peu importe, je l'ai. J'ai fait une sieste après avoir posé ma question juste pour me vider la tête et quand je l'ai regardé de nouveau après, j'ai décidé de changer les deux rectangles et de voir ce qui se passe. Eh bien, devinez quoi, ça l'a corrigé.
À ce stade, je dois dire que les noms donnés dans la documentation de l'API sont trompeurs. Par exemple, les documents se réfèrent à l'image de sortie source et l'image d'entrée afficher. Peut-être que l'API devrait être mise à jour pour avoir une meilleure dénomination?
Je ne suis pas sûr mais je pense que vous avez vos rectangles vers l'arrière ... Drawimage (image, destRect, sourceRect, ...) vérifiez le document API ... – Jaime
Pourriez-vous poster la source de votre classe de culture? Cela ressemble à une erreur d'inversion X/Y (ce qui signifie que vous avez échangé un X avec un Y quelque part dans votre appel de fonction .DrawImage) – Aaronontheweb
@Aaronontheweb, j'ai mis à jour mon message avec les informations que vous vouliez. – Gup3rSuR4c