سؤال

أرغب في تصدير الصورة الموجودة في JPanel إلى ملف رسومات متجهة حتى يمكن تحريرها وطباعتها بدقة أعلى من دقة الشاشة.في الأساس أريد ذلك paint() الوظيفة التي سيتم استدعاؤها باستخدام الرسومات الوجهة التي تحفظ أوامر الرسم في ملف رسومي متجه.

ما هي الطريقة الجيدة والبسيطة للقيام بذلك؟ما المكتبات الموصى بها؟ما هو تنسيق المتجهات الأفضل، ولماذا؟

هل كانت مفيدة؟

المحلول

وإلقاء نظرة على حزمة جافا EPS Graphics2D .

<اقتباس فقرة>   

والعديد من البرامج جافا استخدام Graphics2D رسم الأشياء على الشاشة، وعلى الرغم من أنه من السهل لحفظ الإخراج كما بابوا نيو غينيا أو ملف الحياة السياسية في فرنسا، فمن الصعب قليلا لتصديره باعتباره EPS لإدراج في وثيقة أو ورقة.

     

وهذه الحزمة يجعل العملية برمتها سهلة للغاية، لأنه يمكنك استخدام الكائن EpsGraphics2D كما لو انها كائن Graphics2D. والفرق الوحيد هو أن جميع الطرق المنفذة خلق الناتج EPS، مما يعني أن الرسوم البيانية ترسمه يمكن تغيير حجم دون أن يؤدي ذلك إلى أي من حواف خشنة قد تشاهد عند تغيير حجم الصور بكسل القائم، مثل ملفات JEPG وPNG.

نصائح أخرى

الباتيك سوف تمكنك من رسم لتنفيذ متخصص لكائن Graphics2D ومن ثم تصدير كما وقابلة للناقلات الرسومات (.SVG) الملف. يمكنك بعد ذلك عرض / عملية / طباعته باستخدام متصفح يدعم SVG (لن فايرفوكس التعامل معها nativly، ISTR، IE وغيرها يمكن استخدام الإضافات).

SVGGraphics2D الكائن ( عملية موثقة هنا )

وجافا EPS ذكرها بيير تبدو جيدة، ولكن إذا لم يكن قد ترغب أيضا أن ننظر إلى FreeHEP ناقلات الرسومات . كتب للسماح جافا إعادة استخدامها في مجال فيزياء الطاقة العالية ويشمل مجموعة ناقلات الرسومات، وذلك من خلال تنفيذ Graphics2D. لقد كانت عليه EPS تصدير النجاح جدا لعدد من السنوات.

ويمكنني أن أوصى VectorGraphics2D مكتبة (LGPL). على الرغم من أنه لا يدعم كافة الميزات من Graphics2D، I استخدامه بنجاح لمشروعي. ويوفر تطبيقات java.awt.Graphics2D لمختلف صيغ الملفات النواقل. ببساطة تصدر عن عمليات الطلاء لEPS، SVG، أو ملفات PDF.

مكتبات إضافية للأشخاص الذين لديهم نفس المتطلبات:

تم اختبار كلا الإصدارين GPLv3 جيدًا من خلال الاستخدام المكثف في JFreeChart و مخططات أورسون.

وFreeHEP يبدو للعمل بشكل جيد جدا على الرغم من أنه لا يبدو أن يستمر بعد الآن، وولت صفحات الشوائب ومنتداها. مع مجرد حفنة من خطوط تحصل على الحوار المنبثقة التي يمكن أن تنقذ أي مكون لمجموعة متنوعة من تنسيقات الصور متدرجة ومنتظمة. لدينا بعض الصور الصعبة، وذلك باستخدام قناة ألفا، النص استدارة، والمناطق التي تحيط بها المنحنيات، وأنها أنقذت تماما، أفضل بكثير مع مع VectorGraphics2D.

والمشكلة الوحيدة التي رأيتها حتى الآن هي في الحياة السياسية في فرنسا إنقاذ، الذي يخرج أسود لكل ما عندي من الصور. هذا ليس مهما جدا بالنسبة لنا بالنظر إلى أن أعمال بابوا نيو غينيا، بالإضافة إلى كل وسائل مكافحة ناقلات، ولكن أنا متأكد من أنه سيكون مشكلة لبعض.

وكان لي أن أضيف بالضبط هذا الرمز الكثير لإنقاذ في كل هذه الأوضاع:

public static void showImage(Component comp) 
{
    try
    {
        ExportDialog export = new ExportDialog();
        export.showExportDialog( null, "Export view as ...", comp, "export" );
        System.err.println("Image save complete");

    }
    catch(Exception e)
    {
        e.printStackTrace();
    }
}

وهناك مجموعة من الجرار المكتبة التي يجب أن يضاف أيضا.

هذا غير ممكن بشكل مباشر، حيث تعمل Java API ذات المستوى المنخفض من حيث البيانات النقطية (البكسل) ولا يتم تخزينها أبدًا بتنسيق متجه.(راجع واجهة برمجة التطبيقات الخاصة بـ java.awt.Graphics لمعرفة ما أعنيه).

هناك بعض البرامج ذات الأغراض العامة التي تحول تنسيقات البيانات النقطية إلى تنسيقات متجهة، وقد وجدت هذا البرنامج في بحث سريع:http://autotrace.sourceforge.net/index.html

لذلك، باستخدام مثل هذا البرنامج يمكنك تقسيم مشكلتك إلى مشكلتين أصغر:

  1. تحويل JPanel الخاص بك إلى صورة نقطية أو ملف (http://www.jguru.com/faq/view.jsp?EID=242020)
  2. قم بتشغيل التتبع التلقائي على الملف.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top