Khi trả lời câu hỏi này, tôi cho rằng bạn đã tạo cấu hình của mình thông qua giao diện người dùng và sau đó xuất nó, như Kevin đã đề cập trong nhận xét của anh ấy. Đây là cách tốt nhất để tạo cấu hình ban đầu để đưa vào dự án của bạn.
Lưu ý rằng tất cả các ví dụ được hiển thị bằng mã thủ tục vì mục đích đơn giản; hãy chắc chắn tuân theo các phương pháp hay nhất và đưa vào các dịch vụ của bạn khi xây dựng dự án của bạn.
Thực thể ImageStyle
Khi tệp cấu hình đó được cài đặt, nó sẽ trở thành một Hình ảnhPhong cách thực thể cấu hình và có thể được thao tác giống như bất kỳ thực thể cấu hình nào.
// Lấy ehandler lưu trữ cho các thực thể ImageStyle.
$image_style_storage = \Drupal::entityTypeManager()->getStorage("image_style");
// Lấy một thể hiện của thực thể ImageStyle của chúng ta.
$my_image_style = $image_style_storage->load("my_image_style");
Các hiệu ứng được chỉ định trong định nghĩa ImageStyle là các plugin được quản lý bởi plugin.manager.image.effect
dịch vụ quản lý plugin.
Như may mắn sẽ có nó, các Hình ảnhPhong cách thực thể cung cấp các addImageEffect()
phương thức công khai, chấp nhận một loạt thông tin về hiệu ứng. Phương pháp này thực sự đảm nhiệm việc tạo và chỉ định UUID, sau đó UUID này sẽ được trả lại cho bạn.
chức năng công cộng addImageEffect(mảng $configuration) {
$configuration['uuid'] = $this->uuidGenerator()->generate();
$this->getEffects()->addInstanceId($configuration['uuid'], $configuration);
trả về $configuration['uuid'];
}
Vì vậy, sử dụng của bạn image.style.max_1300x1300
ví dụ, gán hiệu ứng hình ảnh sẽ như sau:
$effect_uuid = $my_image_style->addImageEffect([
'id' => 'image_scale',
'dữ liệu' => [
'chiều rộng' => '1300',
'chiều cao' => '1300',
'cao cấp' => SAI,
],
'trọng lượng' => 1,
]);
Bạn có thể tìm thấy tất cả các hiệu ứng hình ảnh đã đăng ký trên trang web của mình bằng cách thực hiện:
\Drupal::service('plugin.manager.image.effect')->getDefinitions();