البرمجة

كيفية قص الصور في تطبيق Android

لتحقيق هذا المطلوب، يجب أن تقوم بتحديد نقطة القص داخل الصورة المحملة، ثم قم بقصها وتعيين الصورة المقصوصة على ImageView. هناك طرق عديدة لتحقيق هذا، وإليك طريقة بسيطة باستخدام مكتبة android-crop:

أولاً، قم بإضافة تبعية مكتبة android-crop إلى ملف build.gradle الخاص بمشروعك:

gradle
dependencies { implementation 'com.soundcloud.android:android-crop:1.0.1@aar' }

ثانياً، في دالة onActivityResult بعد تحديد الصورة، قم بفتح نافذة القص باستخدام CropImage.activity():

java
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK && data != null && data.getData() != null) { Uri filePath = data.getData(); try { bitmap_one = MediaStore.Images.Media.getBitmap(getContentResolver(), filePath); // Open crop activity CropImage.activity(filePath) .setGuidelines(CropImageView.Guidelines.ON) .setAspectRatio(1, 1) // Aspect ratio 1:1 for square crop .start(this); } catch (IOException e) { e.printStackTrace(); } } else if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE) { // Get cropped image result CropImage.ActivityResult result = CropImage.getActivityResult(data); if (resultCode == RESULT_OK) { Uri resultUri = result.getUri(); try { bitmap_one = MediaStore.Images.Media.getBitmap(getContentResolver(), resultUri); pfp.setImageBitmap(bitmap_one); } catch (IOException e) { e.printStackTrace(); } } else if (resultCode == CropImage.CROP_IMAGE_ACTIVITY_RESULT_ERROR_CODE) { Exception error = result.getError(); error.printStackTrace(); } } }

هذا يجعل التطبيق يقوم بفتح نافذة القص عند النقر على الصورة، يمكنك قص الصورة إلى شكل مربع ثم تعيينها على ImageView بعد الانتهاء.

المزيد من المعلومات

بالطبع! مكتبة android-crop توفر العديد من الخيارات لتخصيص عملية القص، بما في ذلك:

  1. تحديد نسبة العرض إلى الارتفاع للصورة المقصوصة باستخدام setAspectRatio()، مما يتيح لك تحديد النسبة المطلوبة مثل 16:9 أو 4:3 أو أي نسبة أخرى.

  2. تحديد الحدود والشبكة التوجيهية للمساعدة في تحديد منطقة القص باستخدام setGuidelines().

  3. إمكانية تعيين حجم الصورة النهائية المقصوصة باستخدام setMaxCropResultSize()، وهذا يساعد في تحديد دقة الصورة النهائية.

  4. دعم العديد من تنسيقات الصور المدعومة، مثل JPEG، PNG، وغيرها.

  5. إمكانية تعيين الجودة المطلوبة للصورة النهائية باستخدام setOutputCompressQuality().

  6. إمكانية تحديد مكان حفظ الصورة المقصوصة باستخدام setOutputUri().

  7. دعم تدوير الصورة قبل القص باستخدام setInitialRotation().

  8. إمكانية تخصيص ألوان وأشكال وأحجام عناصر واجهة المستخدم باستخدام setCropShape()، setBorderLineColor()، setBorderLineThickness()، وغيرها.

هذه الخيارات تجعل من السهل تخصيص عملية القص وفقًا لاحتياجات تطبيقك ومتطلبات التصميم.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر