Create styled image programmatically












3














I have a module that create custom PDF with multiple selected nodes and I use the below function to create the link to styled images:



$file = File::load($img_id);
$imagesPath = ImageStyle::load('550x300')->buildUrl($file->uri->value);


Unfortunately, the image itself is not created, only the link, which is ok if I display it on a simple webpage because Drupal will create it on the fly when needed but on a PDF it cause errors because the image it not found before the PDF could be displayed.



Is there a programmatically way to create this image ?



Thanks.










share|improve this question



























    3














    I have a module that create custom PDF with multiple selected nodes and I use the below function to create the link to styled images:



    $file = File::load($img_id);
    $imagesPath = ImageStyle::load('550x300')->buildUrl($file->uri->value);


    Unfortunately, the image itself is not created, only the link, which is ok if I display it on a simple webpage because Drupal will create it on the fly when needed but on a PDF it cause errors because the image it not found before the PDF could be displayed.



    Is there a programmatically way to create this image ?



    Thanks.










    share|improve this question

























      3












      3








      3







      I have a module that create custom PDF with multiple selected nodes and I use the below function to create the link to styled images:



      $file = File::load($img_id);
      $imagesPath = ImageStyle::load('550x300')->buildUrl($file->uri->value);


      Unfortunately, the image itself is not created, only the link, which is ok if I display it on a simple webpage because Drupal will create it on the fly when needed but on a PDF it cause errors because the image it not found before the PDF could be displayed.



      Is there a programmatically way to create this image ?



      Thanks.










      share|improve this question













      I have a module that create custom PDF with multiple selected nodes and I use the below function to create the link to styled images:



      $file = File::load($img_id);
      $imagesPath = ImageStyle::load('550x300')->buildUrl($file->uri->value);


      Unfortunately, the image itself is not created, only the link, which is ok if I display it on a simple webpage because Drupal will create it on the fly when needed but on a PDF it cause errors because the image it not found before the PDF could be displayed.



      Is there a programmatically way to create this image ?



      Thanks.







      8 images






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Dec 11 at 8:03









      Leeroy521

      104113




      104113






















          2 Answers
          2






          active

          oldest

          votes


















          5














          You need to execute createDerivative() on ImageStyle.



          $image_style = ImageStyle::load('550x300');

          $file = File::load($img_id);
          $image_uri = $file->getFileUri();
          $destination = $image_style->buildUrl($file->uri->value);
          $image_style->createDerivative($image_uri, $destination);


          Docs: https://api.drupal.org/api/drupal/core%21modules%21image%21src%21Entity%21ImageStyle.php/function/ImageStyle%3A%3AcreateDerivative/8.6.x



          For Drupal 7 there is image_style_create_derivative():



              $style = image_style_load('550x300');

          $file = file_load($img_id);
          $image_uri = $file->uri;
          $destination = image_style_path($style['name'], $image_uri);
          image_style_create_derivative($style, $image_uri, $destination);


          Docs:
          https://api.drupal.org/api/drupal/modules%21image%21image.module/function/image_style_create_derivative/7.x






          share|improve this answer































            1














            This can be achieved with Image Style Warmer module which is available for D8. Worked perfectly for me! This might help other people, who are trying to find a solution.




            The Image Style Warmer module provides options to create image styles
            during upload or via queue worker. So configured image derivates
            already exists when they are requested.




            • Pre-generate configured image styles on image upload or crop change.

            • Pre-generate configured image styles via queue worker.







            share|improve this answer










            New contributor




            Nicky is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
            Check out our Code of Conduct.


















              Your Answer








              StackExchange.ready(function() {
              var channelOptions = {
              tags: "".split(" "),
              id: "220"
              };
              initTagRenderer("".split(" "), "".split(" "), channelOptions);

              StackExchange.using("externalEditor", function() {
              // Have to fire editor after snippets, if snippets enabled
              if (StackExchange.settings.snippets.snippetsEnabled) {
              StackExchange.using("snippets", function() {
              createEditor();
              });
              }
              else {
              createEditor();
              }
              });

              function createEditor() {
              StackExchange.prepareEditor({
              heartbeatType: 'answer',
              autoActivateHeartbeat: false,
              convertImagesToLinks: false,
              noModals: true,
              showLowRepImageUploadWarning: true,
              reputationToPostImages: null,
              bindNavPrevention: true,
              postfix: "",
              imageUploader: {
              brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
              contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
              allowUrls: true
              },
              onDemand: true,
              discardSelector: ".discard-answer"
              ,immediatelyShowMarkdownHelp:true
              });


              }
              });














              draft saved

              draft discarded


















              StackExchange.ready(
              function () {
              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdrupal.stackexchange.com%2fquestions%2f273817%2fcreate-styled-image-programmatically%23new-answer', 'question_page');
              }
              );

              Post as a guest















              Required, but never shown

























              2 Answers
              2






              active

              oldest

              votes








              2 Answers
              2






              active

              oldest

              votes









              active

              oldest

              votes






              active

              oldest

              votes









              5














              You need to execute createDerivative() on ImageStyle.



              $image_style = ImageStyle::load('550x300');

              $file = File::load($img_id);
              $image_uri = $file->getFileUri();
              $destination = $image_style->buildUrl($file->uri->value);
              $image_style->createDerivative($image_uri, $destination);


              Docs: https://api.drupal.org/api/drupal/core%21modules%21image%21src%21Entity%21ImageStyle.php/function/ImageStyle%3A%3AcreateDerivative/8.6.x



              For Drupal 7 there is image_style_create_derivative():



                  $style = image_style_load('550x300');

              $file = file_load($img_id);
              $image_uri = $file->uri;
              $destination = image_style_path($style['name'], $image_uri);
              image_style_create_derivative($style, $image_uri, $destination);


              Docs:
              https://api.drupal.org/api/drupal/modules%21image%21image.module/function/image_style_create_derivative/7.x






              share|improve this answer




























                5














                You need to execute createDerivative() on ImageStyle.



                $image_style = ImageStyle::load('550x300');

                $file = File::load($img_id);
                $image_uri = $file->getFileUri();
                $destination = $image_style->buildUrl($file->uri->value);
                $image_style->createDerivative($image_uri, $destination);


                Docs: https://api.drupal.org/api/drupal/core%21modules%21image%21src%21Entity%21ImageStyle.php/function/ImageStyle%3A%3AcreateDerivative/8.6.x



                For Drupal 7 there is image_style_create_derivative():



                    $style = image_style_load('550x300');

                $file = file_load($img_id);
                $image_uri = $file->uri;
                $destination = image_style_path($style['name'], $image_uri);
                image_style_create_derivative($style, $image_uri, $destination);


                Docs:
                https://api.drupal.org/api/drupal/modules%21image%21image.module/function/image_style_create_derivative/7.x






                share|improve this answer


























                  5












                  5








                  5






                  You need to execute createDerivative() on ImageStyle.



                  $image_style = ImageStyle::load('550x300');

                  $file = File::load($img_id);
                  $image_uri = $file->getFileUri();
                  $destination = $image_style->buildUrl($file->uri->value);
                  $image_style->createDerivative($image_uri, $destination);


                  Docs: https://api.drupal.org/api/drupal/core%21modules%21image%21src%21Entity%21ImageStyle.php/function/ImageStyle%3A%3AcreateDerivative/8.6.x



                  For Drupal 7 there is image_style_create_derivative():



                      $style = image_style_load('550x300');

                  $file = file_load($img_id);
                  $image_uri = $file->uri;
                  $destination = image_style_path($style['name'], $image_uri);
                  image_style_create_derivative($style, $image_uri, $destination);


                  Docs:
                  https://api.drupal.org/api/drupal/modules%21image%21image.module/function/image_style_create_derivative/7.x






                  share|improve this answer














                  You need to execute createDerivative() on ImageStyle.



                  $image_style = ImageStyle::load('550x300');

                  $file = File::load($img_id);
                  $image_uri = $file->getFileUri();
                  $destination = $image_style->buildUrl($file->uri->value);
                  $image_style->createDerivative($image_uri, $destination);


                  Docs: https://api.drupal.org/api/drupal/core%21modules%21image%21src%21Entity%21ImageStyle.php/function/ImageStyle%3A%3AcreateDerivative/8.6.x



                  For Drupal 7 there is image_style_create_derivative():



                      $style = image_style_load('550x300');

                  $file = file_load($img_id);
                  $image_uri = $file->uri;
                  $destination = image_style_path($style['name'], $image_uri);
                  image_style_create_derivative($style, $image_uri, $destination);


                  Docs:
                  https://api.drupal.org/api/drupal/modules%21image%21image.module/function/image_style_create_derivative/7.x







                  share|improve this answer














                  share|improve this answer



                  share|improve this answer








                  edited 2 days ago









                  kiamlaluno

                  79.5k9129248




                  79.5k9129248










                  answered Dec 11 at 8:29









                  quex

                  35416




                  35416

























                      1














                      This can be achieved with Image Style Warmer module which is available for D8. Worked perfectly for me! This might help other people, who are trying to find a solution.




                      The Image Style Warmer module provides options to create image styles
                      during upload or via queue worker. So configured image derivates
                      already exists when they are requested.




                      • Pre-generate configured image styles on image upload or crop change.

                      • Pre-generate configured image styles via queue worker.







                      share|improve this answer










                      New contributor




                      Nicky is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                      Check out our Code of Conduct.























                        1














                        This can be achieved with Image Style Warmer module which is available for D8. Worked perfectly for me! This might help other people, who are trying to find a solution.




                        The Image Style Warmer module provides options to create image styles
                        during upload or via queue worker. So configured image derivates
                        already exists when they are requested.




                        • Pre-generate configured image styles on image upload or crop change.

                        • Pre-generate configured image styles via queue worker.







                        share|improve this answer










                        New contributor




                        Nicky is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                        Check out our Code of Conduct.





















                          1












                          1








                          1






                          This can be achieved with Image Style Warmer module which is available for D8. Worked perfectly for me! This might help other people, who are trying to find a solution.




                          The Image Style Warmer module provides options to create image styles
                          during upload or via queue worker. So configured image derivates
                          already exists when they are requested.




                          • Pre-generate configured image styles on image upload or crop change.

                          • Pre-generate configured image styles via queue worker.







                          share|improve this answer










                          New contributor




                          Nicky is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                          Check out our Code of Conduct.









                          This can be achieved with Image Style Warmer module which is available for D8. Worked perfectly for me! This might help other people, who are trying to find a solution.




                          The Image Style Warmer module provides options to create image styles
                          during upload or via queue worker. So configured image derivates
                          already exists when they are requested.




                          • Pre-generate configured image styles on image upload or crop change.

                          • Pre-generate configured image styles via queue worker.








                          share|improve this answer










                          New contributor




                          Nicky is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                          Check out our Code of Conduct.









                          share|improve this answer



                          share|improve this answer








                          edited Dec 19 at 21:03





















                          New contributor




                          Nicky is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                          Check out our Code of Conduct.









                          answered Dec 19 at 18:53









                          Nicky

                          112




                          112




                          New contributor




                          Nicky is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                          Check out our Code of Conduct.





                          New contributor





                          Nicky is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                          Check out our Code of Conduct.






                          Nicky is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                          Check out our Code of Conduct.






























                              draft saved

                              draft discarded




















































                              Thanks for contributing an answer to Drupal Answers!


                              • Please be sure to answer the question. Provide details and share your research!

                              But avoid



                              • Asking for help, clarification, or responding to other answers.

                              • Making statements based on opinion; back them up with references or personal experience.


                              To learn more, see our tips on writing great answers.





                              Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


                              Please pay close attention to the following guidance:


                              • Please be sure to answer the question. Provide details and share your research!

                              But avoid



                              • Asking for help, clarification, or responding to other answers.

                              • Making statements based on opinion; back them up with references or personal experience.


                              To learn more, see our tips on writing great answers.




                              draft saved


                              draft discarded














                              StackExchange.ready(
                              function () {
                              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdrupal.stackexchange.com%2fquestions%2f273817%2fcreate-styled-image-programmatically%23new-answer', 'question_page');
                              }
                              );

                              Post as a guest















                              Required, but never shown





















































                              Required, but never shown














                              Required, but never shown












                              Required, but never shown







                              Required, but never shown

































                              Required, but never shown














                              Required, but never shown












                              Required, but never shown







                              Required, but never shown







                              Popular posts from this blog

                              Morgemoulin

                              Scott Moir

                              Souastre