يقع مشروع Active Skija في HumbleUI/Skija
Skia هي مكتبة رسومات ثنائية الأبعاد مفتوحة المصدر توفر واجهات برمجة التطبيقات المشتركة التي تعمل عبر مجموعة متنوعة من منصات الأجهزة والبرامج.
Skija عبارة عن روابط Java عالية الجودة لـ Skia.
لأن Java لا تحتوي على رسومات ثنائية الأبعاد قوية وحديثة - لا تزال!
هناك العديد من المناسبات التي قد تحتاج فيها إلى رسومات:
العروض الحالية هي: Graphics2D من AWT، وGraphicsContext من JavaFX. إنهم جيدون، لكنهم مخيبون للآمال.
أدخل سكيا. تتمتع Skia بسجل حافل من المشاريع الصناعية التي تعتمد عليها في كل ما يتعلق بالرسومات: Google Chrome، Android، Flutter، Firefox Canvas، Xamarin، LibreOffice. تتفوق Skia في الأداء على جميع مجموعات أدوات Java2D الموجودة في كل المعايير تقريبًا، وتوفر أيضًا:
يجلب Skija كل هذه القوة إلى أطراف أصابعك، ببساطة مثل إضافة جرة إلى مسار الفصل الدراسي.
توجد روابط تم إنشاؤها تلقائيًا لـ Skia، ولكن لا يبدو أنها تحظى بتبني عالٍ:
يهدف مشروع Skija إلى توفير واجهة برمجة تطبيقات Java أصلية رائعة وسهلة الاستخدام. بخاصة:
الهدف النهائي لـ Skija هو الشعور بأنها مكتبة Java وعدم الاضطرار إلى التفكير في الجزء الأصلي على الإطلاق.
إنشاء لسطح المكتب، مجموعة أدوات واجهة المستخدم التعريفية لـ Kotlin:
Skija Graphics2D، تطبيق Java2D API:
عروض روبرت فيلكر:
فيديوهات هارولد:
التطبيق التجريبي Skija:
ألفا العامة. قد تتغير الأمور دون سابق إنذار.
يرجى ملاحظة أن Skia معروفة بتغيير واجهة برمجة التطبيقات (API) الخاصة بها كثيرًا (شهريًا). ستبذل Skija قصارى جهدها للحماية من هذه التغييرات، ولكن في بعض الأحيان قد يكون ذلك مستحيلًا (على سبيل المثال، تمت إزالة الطريقة). عادةً ما تكون هذه أشياء مساعدة، فلا تقلق كثيرًا.
المنصات:
الواجهات الخلفية:
واجهات برمجة التطبيقات:
Bitmap ▓▓▓▓▓▓▓▓▓▓ Paint ▓▓▓▓▓▓▓▓▓▓
Canvas ▓▓▓▓▓▓▓▓░░ Path ▓▓▓▓▓▓▓▓▓▓
Codec ▓▓▓▓░░░░░░ PathEffects ▓▓▓▓▓▓▓▓▓▓
Color ▓░░░░░░░░░ PathMeasure ▓▓▓▓▓▓▓▓▓▓
ColorFilter ▓▓▓▓▓▓▓▓▓▓ PaintFilterCanvas ▓▓▓▓▓▓▓▓▓▓
ColorInfo ▓▓▓▓▓▓▓▓▓▓ Picture ▓▓▓▓▓▓▓▓▓░
ColorSpace ▓▓▓▓░░░░░░ PictureRecorder ▓▓▓▓▓▓▓▓▓▓
Data ▓▓▓▓▓▓▓▓▓░ PixelRef ▓▓▓▓▓▓▓▓▓▓
Drawable ▓▓▓▓▓▓▓▓░░ Pixmap ▓▓▓▓▓▓▓▓▓▓
Flattenable ░░░░░░░░░░ Region ▓▓▓▓▓▓▓▓▓▓
Font ▓▓▓▓▓▓▓▓▓▓ RuntimeEffect ▓▓▓▓▓░░░░░
FontData ░░░░░░░░░░ ScalerContext ░░░░░░░░░░
FontManager ▓▓▓▓▓▓▓▓▓░ Shader ▓▓▓▓▓▓▓▓▓▓
FontStyle ▓▓▓▓▓▓▓▓▓▓ ShadowUtils ▓▓▓▓▓▓▓▓▓▓
FontStyleSet ▓▓▓▓▓▓▓▓▓▓ Stream ░░░░░░░░░░
Image ▓▓░░░░░░░░ String ▓░░░░░░░░░
ImageFilters ▓▓▓▓▓▓▓▓▓▓ Surface ▓░░░░░░░░░
ImageInfo ▓▓▓▓▓▓▓▓▓▓ TextBlob ▓▓▓▓▓▓▓▓▓▓
MaskFilter ▓▓▓▓▓▓▓▓▓▓ TextBlobBuilder ▓▓▓▓▓▓▓▓▓▓
Matrix33 ▓▓▓░░░░░░░ Typeface ▓▓▓▓▓▓▓▓░░
Matrix44 ▓▓▓░░░░░░░ WStream ▓▓░░░░░░░░
Shaper: Paragraph:
BiDiRunIterator ▓▓▓▓▓▓▓▓▓▓ FontCollection ▓▓▓▓▓▓▓▓▓▓
FontMgrRunIterator ▓▓▓▓▓▓▓▓▓▓ LineMetrics ▓▓▓▓▓▓▓▓▓░
FontRunIterator ▓▓▓▓▓▓▓▓▓▓ Paragraph ▓▓▓▓▓▓▓▓▓▓
HbIcuScriptRunIter ▓▓▓▓▓▓▓▓▓▓ ParagraphCache ▓▓▓▓▓▓▓▓▓▓
IcuBidiRunIterator ▓▓▓▓▓▓▓▓▓▓ ParagraphStyle ▓▓▓▓▓▓▓▓▓▓
LanguageRunIterator ▓▓▓▓▓▓▓▓▓▓ ParagraphBuilder ▓▓▓▓▓▓▓▓▓▓
RunHandler ▓▓▓▓▓▓▓▓▓▓ TextStyle ▓▓▓▓▓▓▓▓▓▓
RunInfo ▓▓▓▓▓▓▓▓▓▓ TypefaceFontProvider ▓▓▓▓▓▓▓▓▓▓
ScriptRunIterator ▓▓▓▓▓▓▓▓▓▓
Shaper ▓▓▓▓▓▓▓▓▓▓
TextBlobBldRunHndlr ▓▓▓▓▓▓▓▓▓▓
SVG:
SVGDOM ▓▓▓▓▓▓▓▓░░
SVGCanvas ▓▓▓▓▓▓▓▓▓▓
SVGSVG ▓▓▓▓▓▓▓▓░░
يعد استخدام Skija أمرًا بسيطًا مثل إضافة ملف jar.
مخضرم:
< repositories >
< repository >
< id >space-maven</ id >
< url >https://packages.jetbrains.team/maven/p/skija/maven</ url >
</ repository >
</ repositories >
< dependencies >
< dependency >
< groupId >org.jetbrains.skija</ groupId >
< artifactId >skija-${platform}</ artifactId >
< version >${version}</ version >
</ dependency >
</ dependencies >
غرادل:
repositories {
maven {
url " https://packages.jetbrains.team/maven/p/skija/maven "
}
}
dependencies {
api " org.jetbrains.skija: ${ artifact } : ${ version } "
}
استبدل ${artifact}
و ${version}
بـ:
منصة | ${artifact} | ${version} |
---|---|---|
ماك إنتل | skija-macos-x64 | |
ماك M1 | skija-macos-arm64 | |
لينكس | skija-linux | |
ويندوز | skija-windows |
ابدأ بقراءة "البدء".
مستندات API قيد التطوير — راجع التعليمات البرمجية المصدر وتعليقات JavaDoc.
لقد وجدت وثائق SkiaSharp مصدرًا ممتازًا لما يمكن القيام به في Skia. لديهم أمثلة جميلة وتفسيرات مرئية أيضا.
إذا كانت Skija تفتقد إلى وثائق طريقة أو فئة معينة، فتحقق من نفس الفئة في وثائق Skia بدلاً من ذلك. ربما لم ننقله إلى Java بعد. العلاقات العامة هي موضع ترحيب!
وأخيرًا، يحتوي تطبيق LWJGL التجريبي على أمثلة لمعظم واجهات برمجة التطبيقات التي يتم تنفيذها حاليًا.
المتطلبات الأساسية: Git، CMake، Ninja، JDK 9+، $JAVA_HOME، Python 3.
الدفع:
git clone https://github.com/JetBrains/skija.git
cd skija
./script/build.py
لتصميم الكود:
security find-identity
export APPLE_CODESIGN_IDENTITY= " <...> "
./script/build.py
لبناء Skia نفسها، راجع https://github.com/JetBrains/skia-build/
تتطلب الأمثلة إنشاء Skija محليًا (انظر مبنى Skija).
انظر الأمثلة/.
المساهمات هي موضع ترحيب!
تأكد من قراءة اتفاقيات الكود.
تذكر: هدف Skija هو رسم خريطة Skia API في أقرب وقت ممكن.
هذه الأشياء لها مكان في Skija:
هذه لا:
الأشياء المفيدة المبنية على قمة Skia/Skija مرحب بها دائمًا - مثل المكتبات.