إدارة إطارات الصورة في العروض التقديمية باستخدام PHP

المقدمة

إطار الصورة هو شكل يحتوي على صورة — إنه كالصورة داخل إطار.

يمكنك إضافة صورة إلى شريحة عبر إطار صورة. بهذه الطريقة، يمكنك تنسيق الصورة من خلال تنسيق إطار الصورة.

إنشاء إطار صورة

  1. إنشاء مثيل من الفئة Presentation.
  2. الحصول على مرجع الشريحة عبر فهرسها.
  3. إنشاء كائن PPImage بإضافة صورة إلى ImageCollection المرتبط بكائن العرض الذي سيُستخدم لملء الشكل.
  4. تحديد عرض الصورة وارتفاعها.
  5. إنشاء PictureFrame بناءً على عرض وارتفاع الصورة عبر طريقة addPictureFrame التي يُ exposedها كائن الشكل المرتبط بالشريحة المرجعية.
  6. إضافة إطار صورة (المحتوي على الصورة) إلى الشريحة.
  7. كتابة العرض المعدل كملف PPTX.

هذا الكود PHP يوضح كيفية إنشاء إطار صورة:

  # يخلق مثالًا من فئة Presentation التي تمثل ملف PPTX
  $pres = new Presentation();
  try {
    # يحصل على الشريحة الأولى
    $sld = $pres->getSlides()->get_Item(0);
    # يخلق مثالًا من فئة Image
    $imgx = $pres->getImages()->addImage(new Java("java.io.FileInputStream", new Java("java.io.File", "asp1.jpg")));
    # يضيف إطار صورة بالارتفاع والعرض المتطابقين للصورة
    $sld->getShapes()->addPictureFrame(ShapeType::Rectangle, 50, 150, $imgx->getWidth(), $imgx->getHeight(), $imgx);
    # يكتب ملف PPTX إلى القرص
    $pres->save("RectPicFrame.pptx", SaveFormat::Pptx);
  } catch (JavaException $e) {
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

إنشاء إطار صورة مع مقياس نسبي

عن طريق تعديل مقياس الصورة النسبي، يمكنك إنشاء إطار صورة أكثر تعقيدًا.

  1. إنشاء مثيل من الفئة Presentation.
  2. الحصول على مرجع الشريحة عبر فهرسها.
  3. إضافة صورة إلى مجموعة صور العرض.
  4. إنشاء كائن PPImage بإضافة صورة إلى ImageCollection المرتبط بكائن العرض الذي سيُستخدم لملء الشكل.
  5. تحديد العرض والارتفاع النسبيين للصورة داخل إطار الصورة.
  6. كتابة العرض المعدل كملف PPTX.

هذا الكود PHP يوضح كيفية إنشاء إطار صورة مع مقياس نسبي:

  # إنشاء فئة Presentation التي تمثل ملف PPTX
  $pres = new Presentation();
  try {
    # احصل على الشريحة الأولى
    $sld = $pres->getSlides()->get_Item(0);
    # إنشاء فئة Image
    $imgx = $pres->getImages()->addImage(new Java("java.io.FileInputStream", new Java("java.io.File", "asp1.jpg")));
    # أضف إطار صورة بالارتفاع والعرض المتطابقين للصورة
    $pf = $sld->getShapes()->addPictureFrame(ShapeType::Rectangle, 50, 150, $imgx->getWidth(), $imgx->getHeight(), $imgx);
    # ضبط مقياس العرض والارتفاع النسبي
    $pf->setRelativeScaleHeight(0.8);
    $pf->setRelativeScaleWidth(1.35);
    # اكتب ملف PPTX إلى القرص
    $pres->save("RectPicFrame.pptx", SaveFormat::Pptx);
  } catch (JavaException $e) {
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

استخراج الصور النقطية من إطارات الصورة

يمكنك استخراج الصور النقطية من كائنات PictureFrame وحفظها بصيغ PNG أو JPG وغيرها. يوضح مثال الكود أدناه كيفية استخراج صورة من المستند “sample.pptx” وحفظها بصيغة PNG.

  $presentation = new Presentation("sample.pptx");
  try {
    $firstSlide = $presentation->getSlides()->get_Item(0);
    $firstShape = $firstSlide->getShapes()->get_Item(0);
    if (java_instanceof($firstShape, new JavaClass("com.aspose.slides.PictureFrame"))) {
      $pictureFrame = $firstShape;
      try {
        $slideImage = $pictureFrame->getPictureFormat()->getPicture()->getImage()->getImage();
        $slideImage->save("slide_1_shape_1.png", ImageFormat::Png);
      } finally {
        if (!java_is_null($slideImage)) {
          $slideImage->dispose();
        }
      }
    }
  } catch (JavaException $e) {
  } finally {
    $presentation->dispose();
  }

استخراج صور SVG من إطارات الصورة

عندما يحتوي عرض تقديمي على رسومات SVG موضوعة داخل أشكال PictureFrame، يتيح Aspose.Slides for PHP via Java استرجاع الصور المتجهة الأصلية بدقة كاملة. عن طريق استعراض مجموعة أشكال الشريحة، يمكنك