मेरे पास एक तोप डिजिटल कैमरा है और मैंने इसे सुपरफ़ाइन गुणवत्ता वाले चित्र लेने के लिए सेट किया है और यह एक .jpg फ़ाइल 3 मेगा आकार का आउटपुट करता है। अगर मैं ASP.NET में इस तरह इसे लोड.NET सेविंग जेपीईजी उसी गुणवत्ता के साथ
imgPicture = Image.FromFile(Config.WorkDirectory + this.TempPhotoName);
bmpPicture = new Bitmap(imgPicture);
(यह यह डीपीआई संकल्प है बदलने के लिए या यह या whaterver फसल के लिए उपयोगी है) और फिर मैं इसे इस तरह फिर से बचाने के लिए:
bmpModified.Save(Config.WorkDirectory + this.TempPhotoName,System.Drawing.Imaging.ImageFormat.Jpeg);
यह
एक जेपीजी आउटपुट करता है जो केवल 700 केबी या आकार में होता है। गुणवत्ता का नुकसान है।
मैं भी इस तरह यह बचत करने की कोशिश की:
bmpPicture.Save(Config.WorkDirectory + this.TempPhotoName, codecJpeg, encparams);
जहां codecJpeg है
ImageCodecInfo codecJpeg = this.getEncoderInfo("image/jpeg");
private ImageCodecInfo getEncoderInfo(string mimeType)
{
// Get image codecs for all image formats
ImageCodecInfo[] codecs = ImageCodecInfo.GetImageEncoders();
// Find the correct image codec
for (int i = 0; i < codecs.Length; i++)
if (codecs[i].MimeType == mimeType)
return codecs[i];
return null;
}
और encparams:
EncoderParameters encparams = new EncoderParameters(1);
encparams.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 97L);
इस तरह आकार (और मैं भी गुणवत्ता पर शक) बनाए रखा जाता है लेकिन मैं हाथ से गुणवत्ता इनपुट कर रहा हूं।
मैं पूछना चाहता हूँ:
वहाँ एक ही गुणवत्ता के साथ छवि को बचाने के लिए के रूप में यह गुणवत्ता मूल्य हार्डकोड बिना लोड किया गया था कोई तरीका है?
अग्रिम
PropertyItems स्थापना और, गुणवत्ता नुकसान के लिए नेतृत्व करेंगे, क्योंकि छवि को फिर से इनकोडिंग किया जाएगा पुन: सहेज। यहां और पढ़ें: http://stackoverflow.com/questions/1038206/net-c-library-for-lossless-exif-rewriting – arbiter
हां, मुझे सराहना है कि इसे फिर से एन्कोड किया जाएगा - लेकिन मुझे लगता है कि यह समझ में आता है मूल रूप से वही "हानि" पर फिर से एन्कोड करें, क्या आप चाहें। आप अभी भी डेटा खोने जा रहे हैं, लेकिन शायद एक बड़ी राशि नहीं है। यह भी ध्यान रखें कि मैं * सेटिंग * प्रॉपर्टीइटम के बारे में बात नहीं कर रहा था - मैं मूल गुणवत्ता को जानने के लिए * लाने * के बारे में बात कर रहा था, हालांकि इसमें प्रासंगिक डेटा प्रतीत नहीं होता है। –
अच्छी तरह से जेपीजी गुणवत्ता लाने के लिए प्रॉपर्टीटाइम तत्व मौजूद है - PropertyTagJPEGQuality, लेकिन यह एडोब फोटोशॉप के लिए निजी टैग के रूप में कहा गया है, इसलिए मुझे नहीं पता कि यह कैमरा से भरा है या नहीं। वैसे भी एक ही जेपीजी गुणवत्ता मूल्य के साथ जेपीईजी भंडारण की थोड़ी सी समझ है, क्योंकि गुणवत्ता में कमी होगी। – arbiter