ليس لدي فهم عميق لمحتوى معالجة صور Java ، لذلك سأسامحك على كلماتك البسيطة.
تقوم Java بتنفيذ ضبط مستوى اللون ، أي ، يقوم بضبط مكون RGB للصورة ، ويمكنه أيضًا ضبط سطوع الصورة.
رمز الاختبار
public static void main (string [] args) {// conversion بين الملف و bufferedimage bufferedimage bi = file2Img ("test.jpg") ؛ // اقرأ الصورة bufferedimage bii = img_color_gradation (bi ، 100،0،0) ؛ img2file (bii ،رمز ضبط مستوى اللون
// اضبط مستوى لون الصورة ، اضبط مكون RGB Public Static static Img_Color_gradation (BufferEdImage IMGSRC ، int r ، int g ، int b) {try {// إنشاء صورة بدون شفافية bufferedimage = جديد bufferedimage (imgsrc.getwidth () imgsrc.getheight () ، bufferedImage.type_int_rgb) ؛ int width = imgsrc.getWidth () ؛ ارتفاع int = imgsrc.getheight () ؛ لـ (int i = 0 ؛ i <height ؛ i ++) {for (int j = 0 ؛ j <width ؛ j ++) {int pixel = imgsrc.getrgb (j ، i) ؛ لون اللون = لون جديد (بكسل) ؛ int red = color.getred ()+r ؛ إذا (أحمر> 255) الأحمر = 255 ؛ إذا (أحمر <0) أحمر = 0 ؛ int green = color.getGreen ()+g ؛ إذا (الأخضر> 255) الأخضر = 255 ؛ إذا (الأخضر <0) الأخضر = 0 ؛ int Blue = color.getBlue ()+b ؛ إذا (الأزرق> 255) الأزرق = 255 ؛ إذا (الأزرق <0) الأزرق = 0 ؛ اللون = لون جديد (أحمر ، أخضر ، أزرق) ؛ int x = color.getrgb () ؛ back.setrgb (j ، i ، x) ؛ }} العودة مرة أخرى ؛ } catch (استثناء e) {E.PrintStackTrace () ؛ العودة لاغية. }}قراءة الصور ، ووظائف التخزين
// اقرأ الصورة public static static file2Img (string imgpath) {try {bufferedImage bufferedImage = imageio.read (ملف جديد (imgpath)) ؛ إرجاع bufferedimage. } catch (استثناء e) {E.PrintStackTrace () ؛ العودة لاغية. }} // احفظ الصورة ، والمدى بالتنسيق ، "JPG" ، "png" ، إلخ. } catch (استثناء e) {E.PrintStackTrace () ؛ }}يشارك:
فيما يلي صيغة حسابية للسطوع والتباين
(يمثل RGB قيمة مكون اللون للصورة الأصلية ، والقيمة التي لا تتم معالجتها بواسطة جدول NRGB ، ويمثل mbrightness قيمة السطوع المعدل ، ويمثل McOntrast قيمة التباين المعدلة ، ويمثل AVG متوسط قيمة بكسل الصورة بأكملها)
السطوع: NRGB = rgb+mbrightness
التباين: NRGB = (RGB-AVG)*(1-Percent ٪)+نطاق القيمة المئوية AVG في المئة هو (-1 ~ 1) 0 هو القيمة الأصلية. صيغة التباين هي أيضا جيدة جدا لإثبات. توسيعه.
NRGB = RGB-RGB*٪ ٪ -AVG+AVG*٪ ٪+AVG
NRGB = RGB-RGB*٪ ٪+AVG*٪ ٪
بالنسبة لمصفوفة الصورة بأكملها ، يجب ضمان السطوع بأن المبلغ الجبري للمصفوفة بأكملها لم يتغير.
و AVG = (RGB1+RGB2+... RGBN)/N (1)
(NRGB1+NRGB2+... NRGBN) = (RGB1+RGB2+... RGBN)+N*AVG*٪-(RGB1+RGB2+... RGBN)*٪ ٪ (2)
مجرد استبدال الصيغة (1) في الصيغة (2)
لخص
ما ورد أعلاه هو كل محتوى هذه المقالة حول تعديل مستوى الألوان وعملية تعديل السطوع أمثلة على صورة Java ، وآمل أن يكون مفيدًا للجميع. إذا كانت هناك أي أوجه قصور ، فيرجى ترك رسالة لإشارةها.