سؤال

لدي متطلبات المشروع لتقديم HTML والتقاط الصورة المقدمة كملف على خادم CentOS 5.4 مقطوعة الرأس. متطلباتي المحددة هي:

1) سيكون الإدخال عنوان URL للصفحة لتقديم (أو ملف: // url إلى ملف HTML محلي) ، سيكون الإخراج ملف صورة يحتوي على الصورة المقدمة للصفحة
2) يجب دعم CSS من قبل العارض حتى CSS المستوى 1
3) يجب عرض الصور الثابتة في الصفحة بشكل صحيح في الصورة المقدمة ، بما في ذلك أي لون شفاف في ملفات .gif أو .png
4) يجب أن تكون قادرة على التشغيل على خادم CentOS 5.4 مقطوعة الرأس.
5) يجب ألا يعتمد الحل على أي منتج أو مكون غير مجاني للاستخدام التجاري

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

أي اقتراحات؟

شكرا مقدما ، جيم

الحل: انتهى بي الأمر باستخدام مكتبة مجموعة أدوات الأدوات القياسية (www.eclipse.org/swt) لقدرات المتصفح المدمجة. سمح لي هذا بفتح نافذة برمجيًا مع التحكم في المتصفح فيه ، وقم بتقديم الصفحة ، ثم التقاط محتوى النافذة إلى ملف صورة (عادةً ما يكون PNG). الجانب السلبي الوحيد لهذا النهج الذي لا يمكن تجنبه هو "وميض" عندما يجب أن تكون النافذة مرئية للحظة من أجل القيام بالتقاط الشاشة. أستطيع العيش معها. كان الباقي مجرد رمز لتهيئة كائنات SWT التي تحصل على موارد النظام ، ومستمع للتحقق من الانتهاء بنجاح من تحميل الصفحة ، وبعض التعليمات البرمجية لتنظيف اتصال معلق (عندما لا يكمل تحميل الصفحة لأي سبب من الأسباب).

حصلت على زميل في الفريق للعب مع XVFB (X الظاهري FrameBuffer) على CentOS Linux. يبدو أن الاختبارات الأولية تعمل ، لذلك يبدو أن النصيحة من الملصق أدناه (الذي قال لمحاولة XVFB) قد تكون حلاً قابلاً للتطبيق لجزء الخادم المقطوع الرأس من مشكلتي.

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

المحلول

يمكنك بدء بيئة X-Windows الظاهرية باستخدام XVFB. يمكنك الآن بدء تشغيل متصفح منتظم لتقديم الصفحة واستخدام أداة الشاشة لالتقاط محتوى النافذة. انها ليست جميلة ، ولكن straghtforward للقيام.

WebKit مفتوح المصدر ومتضمن ، ربما يمكنك استخدام هذا في تطبيق أصلي صغير لتقديمه على قماش وحفظه على القرص؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top