Hướng dẫn php image workshop - hội thảo hình ảnh php

Bạn không muốn dành thời gian để đọc tất cả các tài liệu của ImageWorkshop (bạn sẽ đọc nó sau nếu bạn có nhu cầu đặc biệt ...) lớp !

Đầu tiên, cài đặt ImageWorkshop trong dự án của bạn, và sau đó cho phép chơi với lớp!

1 - Khởi tạo một lớp

Một lớp sẽ chứa hình ảnh bạn muốn làm việc. Ở đây chúng tôi khởi tạo một lớp từ hình ảnh vật lý trên máy chủ:

        $pinguLayer = ImageWorkshop::initFromPath(__DIR__.'/../path/to/images/pingu.jpg');
        

Lớp sẽ có chiều rộng và chiều cao của hình ảnh này. Tại mọi thời điểm, bạn có thể có được chiều rộng và chiều cao (tính bằng pixel) của một lớp nhờ các phương pháp này:

        echo $pinguLayer->getWidth();
        echo $pinguLayer->getHeight();
        

Trong ví dụ của chúng tôi, chúng tôi cho rằng kích thước hình ảnh Pingu là 640px cho 480px trong ví dụ của chúng tôi:

Hướng dẫn php image workshop - hội thảo hình ảnh php

Bạn có thể thấy tất cả các phương thức để khởi tạo một lớp (từ một biểu mẫu tải lên, Php var ...) tại chương khởi tạo.

2 - Áp dụng một hành động

Sau đó, bạn có thể áp dụng một hành động, giống như thay đổi kích thước, trên lớp này:

        $pinguLayer->resizeInPixel(400, null, true);
        

Ở đây tôi chọn thay đổi kích thước lớp để có chiều rộng 400px, và cũng để tự động lưu ý chiều cao để bảo tồn tỷ lệ.

Có nhiều hành động (xoay, cây trồng ...), tìm hiểu chúng tại chương hành động.

Đây là những gì lớp dường như sau khi thay đổi kích thước:

Hướng dẫn php image workshop - hội thảo hình ảnh php

3 - chồng chất

ImageWorkShop cho phép bạn tăng cường các lớp số nhiều trên đỉnh của nhau: Mỗi lớp có một chồng lớp con trên đỉnh của nó, trống theo mặc định.superimpose plural layers on the top of each other: every layer has a stack of sublayers on its top, empty by default.

Chúng tôi muốn thêm 2 hình ảnh trên đỉnh pingu của chúng tôi, để bắt đầu, chúng tôi khởi tạo 2 lớp khác:

        $wwfLogoLayer = ImageWorkshop::initFromPath(__DIR__.'/../path/to/images/wwf.png');
        $tuxLayer = ImageWorkshop::initFromPath(__DIR__.'/../path/to/images/tux.png');
        

Sau đó, chúng tôi thêm chúng trên ngăn xếp của lớp pingu (hiểu trên đỉnh của lớp này):

        $pinguLayer->addLayerOnTop($wwfLogoLayer, 20, 10, 'LB');
        $pinguLayer->addLayerOnTop($tuxLayer, 20, 10, 'RT');
        

Bạn có thể đặt các lớp ở vị trí bạn muốn trên lớp pingu:

  • $ wwflogolayer được đặt ở vị trí dưới cùng bên trái trên đỉnh của lớp pingu nhờ tham số thứ 4, với giá trị chuỗi 'lb' để nói "đáy trái". Ngoài ra, nó có bản dịch 20px từ bên trái và 10px từ dưới cùng của lớp Pingu!'LB' to say "Left Bottom". Also, it has a translation of 20px from the left and 10px from the bottom of pingu layer !
  • $ tuxlayer được đặt ở vị trí đỉnh bên phải ('rt') trên lớp pingu, với bản dịch 20px từ bên phải và 10px từ đầu.Right Top ('RT') position on the pingu layer, with a translation of 20px from the right and 10px from the top.

Bạn có thể thấy tất cả các vị trí có thể để đặt các lớp nhờ vào lược đồ góc / vị trí của một hình ảnh.

Và bạn cũng có thể tìm hiểu thêm về sự chồng chất, rất giống với nguyên tắc Photoshop!

Ở đây, những gì lớp dường như sau khi chúng tôi thêm 2 lớp logo vào ngăn xếp của nó:

Hướng dẫn php image workshop - hội thảo hình ảnh php

4 - Quản lý kết quả

Cuối cùng, chúng tôi chọn lưu lớp đã sửa đổi của mình (trong một thư mục):

        // Saving the result
        $dirPath = __DIR__."/../web/uploads/2012";
        $filename = "pingu_edited.png";
        $createFolders = true;
        $backgroundColor = null; // transparent, only for PNG (otherwise it will be white if set null)
        $imageQuality = 95; // useless for GIF, usefull for PNG and JPEG (0 to 100%)
         
        $pinguLayer->save($dirPath, $filename, $createFolders, $backgroundColor, $imageQuality);
        

Chúng tôi chọn lưu hình ảnh dưới dạng PNG, ngay cả bản gốc là JPEG, bằng cách chỉ định phần mở rộng trong tên tệp.

Nếu các thư mục không tồn tại, không phải là vấn đề: bằng cách đặt tham số thứ ba đúng, ImageWorkshop sẽ tạo chúng cho bạn!

Tất nhiên, bạn cũng có thể hiển thị kết quả trong Điều hướng hoặc lấy biến hình ảnh để hoạt động mà không cần ImageWorkshop, xem ở đây để quản lý kết quả.

5 - Tất cả các mã của hướng dẫn nhanh chóng

Ở đây mã cuối cùng của tour du lịch có hướng dẫn của chúng tôi trong một đoạn trích nhỏ:

        // Initialization of layers you need
        $pinguLayer = ImageWorkshop::initFromPath(__DIR__.'/../path/to/images/pingu.jpg');
        $wwfLogoLayer = ImageWorkshop::initFromPath(__DIR__.'/../path/to/images/wwf.png')
        $tuxLayer = ImageWorkshop::initFromPath(__DIR__.'/../path/to/images/tux.png');
        
        // resize pingu layer
        $pinguLayer->resizeInPixel(400, null, true);
        
        // Add 2 layers on pingu layer
        $pinguLayer->addLayerOnTop($wwfLogoLayer, 20, 10, 'LB');
        $pinguLayer->addLayerOnTop($tuxLayer, 20, 10, 'RT');
        
        // Saving the result in a folder
        $pinguLayer->save(__DIR__."/../web/uploads/2012", "pingu_edited.png", true, null, 95);
        

ImageWorkShop thực sự trực quan và đơn giản để sử dụng, mặc dù tính linh hoạt cao!

Để hoàn thành, tôi mời bạn đọc một chương quan trọng của những người chơi tốt để tránh một số lỗi.

Bây giờ, bạn có thể chơi với lớp!