ในการตอบคำถามนี้ ฉันคิดว่าคุณได้สร้างการกำหนดค่าผ่าน UI แล้วส่งออก ตามที่เควินกล่าวถึงในความคิดเห็นของเขา นี่เป็นวิธีที่ดีที่สุดในการสร้างการกำหนดค่าเริ่มต้นเพื่อรวมไว้ในโครงการของคุณ
โปรดทราบว่าตัวอย่างทั้งหมดจะแสดงโดยใช้โค้ดขั้นตอนเพื่อความง่าย อย่าลืมปฏิบัติตามแนวทางปฏิบัติที่ดีที่สุดและแทรกบริการของคุณเมื่อสร้างโครงการของคุณ
เอนทิตี ImageStyle
เมื่อติดตั้งไฟล์คอนฟิกูเรชันแล้ว ไฟล์นั้นจะกลายเป็น สไตล์ภาพ เอนทิตีการกำหนดค่าและสามารถจัดการได้เหมือนกับเอนทิตีการกำหนดค่าใดๆ
// รับตัวจัดการที่เก็บสำหรับเอนทิตี ImageStyle
$image_style_storage = \Drupal::entityTypeManager()->getStorage("image_style");
// รับอินสแตนซ์ของเอนทิตี ImageStyle ของเรา
$my_image_style = $image_style_storage->โหลด("my_image_style");
เอฟเฟ็กต์ที่ระบุในคำนิยาม ImageStyle คือปลั๊กอินที่จัดการโดย plugin.manager.image.effect
บริการจัดการปลั๊กอิน
เหมือนโชคจะเข้าข้าง สไตล์ภาพ นิติบุคคลเสนอ addImageEffect()
วิธีการสาธารณะซึ่งยอมรับข้อมูลเอฟเฟกต์มากมาย วิธีนี้จะดูแลการสร้างและกำหนด UUID ซึ่งจะถูกส่งคืนให้คุณ
ฟังก์ชั่นสาธารณะ addImageEffect (การกำหนดค่าอาร์เรย์ $) {
$configuration['uuid'] = $this->uuidGenerator()->สร้าง();
$this->getEffects()->addInstanceId($configuration['uuid'], $configuration);
ส่งคืน $configuration['uuid'];
}
ดังนั้นการใช้ของคุณ image.style.max_1300x1300
ตัวอย่างเช่น การกำหนดเอฟเฟ็กต์ภาพจะมีลักษณะดังนี้:
$effect_uuid = $my_image_style->addImageEffect([
'id' => 'image_scale',
'ข้อมูล' => [
'ความกว้าง' => '1300',
'ความสูง' => '1300',
'หรู' => FALSE,
]
'น้ำหนัก' => 1,
]);
คุณสามารถค้นหาเอฟเฟ็กต์รูปภาพทั้งหมดที่ลงทะเบียนในไซต์ของคุณโดยดำเนินการ:
\Drupal::service('plugin.manager.image.effect')->getDefinitions();