السلام عليكم،
سؤال جديد في سلسلة الأسئلة الاختصاصية في مجال معالجة الصور في جافا!
أنشأت صف جديد مشتق من الصف BufferedImage يدعى WordImage لإضافة بعض الطرق المختصة بمعالجة الكلمات في صورة.
المهم؛ بعد إنشاء غرض من الصف WordImage أحاول أن أجعله يؤشر إلى صورة بعد قراءتها بالطريقة read(File) الموجودة في الصف ImaegIO بالطريقة التالية:
WordImage img = (WordImage) ImageIO.read(new File("image.jpg");كما لاحظتم أقوم بتخفيض مستوى تمثيل الغرض العائد من الطريقة read الذي هو من النمط BufferedImage إلى النمط WordImage بشكل صريح لأن هذا لا يتم بشكل ضمني. ولكن بالرغم من ذلك العملية لم تنجح وتقول رسالة الخطأ وجود خطأ في الـ casting، الخطأ من النمط ClassCastException.
فما الحل؟؟؟
هذا تعريف الصف WordImage مع المشيد للتسهيل المساعدة، ولكم الشكر مسبقاً:
import java.awt.image.*;
public class WordImage extends BufferedImage {
public WordImage(int width, int height) {
super(width, height, BufferedImage.TYPE_4BYTE_ABGR);
for (int i = 0; i < this.getWidth(); i++)
for (int j = 0; j < this.getHeight(); j++)
this.setRGB(i, j, 0xffffff);
}
//too many methods not written here to save time and because they are not essential in this problem.
}