The imagefactory module can be used to resize image and add infinite text with cumstom fonts .It will save picture on in public file path and add record to file_managed table.

Features

  1. You can set width and height to resize area.
  2. Ajax action to resize ,add text and save.
  3. You can upload fonts and manage them.


Demonstration

Documentation

Sandbox url : https://drupal.org/sandbox/jeffstric/1937132
Git link:git clone http://git.drupal.org/sandbox/jeffstric/1937132.git 7.x-2.x

This is a Drupal 7 -module

review of other module

  1. http://drupal.org/node/1925870#comment-7217686
  2. http://drupal.org/node/1948624#comment-7222462
  3. http://drupal.org/node/1948458#comment-7227324

Comments

luco’s picture

Status: Active » Needs work

@jeffstric I tried your demonstration. the resizing is pretty straightforward.

however, I found some usability problems:

  • the "cumstom" button doesn't seem to do anything (also there's a typo: it's "custom"). however, when I clicked on "resize image", it worked.
  • the customize screen has an empty fieldset under the image.
  • fields are missing some hints, for example: "Type the message you'd like displayed on the image" under the field "content".
  • "size" should tell users in what size the text goes (I'm assuming it's text size, right? you should review this label). also use a suffix property, so that people will know whether it's pixels, points etc.
  • "color" field should accept direct input. I tried to type "#FFCC00" but it didn't work. also, the button which inserts the selected color has no label, and I only found it after looking around the color dialog a bit.
  • also "x" and "y" have no clue... I'm assuming it's the text position, but relative to the top left? bottom left? you should tell users.

finally, I'm not sure the fields should be glued to the frame like that. did you customize the CSS?

anyway I'll install the module in a couple of days and let you know if it works in my setup... in the meantime, review your code here: http://ventral.org.

good luck!

cheers,
Luciano

PS.: I like the cat Nicholas Cage :)

jeffstric’s picture

Really thank you , I will fix the problem in this week.
Ps:
1 due to i use imagettftext() ,the y is the fifth param, the y position of the fonts baseline, not the very bottom of the character.
I will add this hint to user.
2 button cumstom now is used to set width and height of resize area, but the value of input is confused.

jeffstric’s picture

Status: Needs work » Needs review

fixed the bugs report,and solve the fonts disappear bugs,welcome to my Demonstration

PA robot’s picture

Status: Needs review » Needs work

There are some errors reported by automated review tools, did you already check them? See http://ventral.org/pareview/httpgitdrupalorgsandboxjeffstric1937132git

We are currently quite busy with all the project applications and I can only review projects with a review bonus. Please help me reviewing and put yourself on the PAReview: review bonus high priority list. Then I'll take a look at your project right away :-)

luco’s picture

StatusFileSize
new17.59 KB

ok, it's looking much better now.

I finally understood what the apply button does in the first step, where users can type width and height - now it's clear that it's related to the textfields, but you could make that fieldset collapsible just in case.

there's some spelling errors, and your text is somewhat technical. try changing "color must be string with six character" to "please use six letters or numbers to describe your colour", for example.

also it'd be nice (if possible) if the input color field accepted uppercase letters and strings with three characters, like FFF which is the same as ffffff.

there's not a measure for text size yet (pt, px etc).

and though it's more of a look and feel type of thing, I think it'd look better if you checked the layout. some elements are glued to the margins. please see the attached image.

jeffstric’s picture

Fix the layout and color input problem,however so many error in http://ventral.org/pareview/httpgitdrupalorgsandboxjeffstric1937132git-7x-2x,It is compulsive to obey?

luco’s picture

@jeffstric, I'm pretty sure reviewers will tell you to fix those errors.

you must follow Drupal coding standards because that's how other people will be able to understand your code in the future (and how you will understand theirs).

but your module works just fine! fix the issues in the automated review and don't give up! :)

jeffstric’s picture

OK! Continue tomorrow.

jeffstric’s picture

Fix the code standard problem,except:

  1. PAReview.sh mistake Shift Arithmetic Right as two single angle bracket.

    code:
    r: hex >> 16,
    g: (hex & 0x00FF00) >> 8,
    

    review:

    295 | ERROR | Expected 1 space after ">"; 0 found
    295 | ERROR | Expected 1 space before ">"; 0 found
    296 | ERROR | Expected 1 space after ">"; 0 found
    296 | ERROR | Expected 1 space before ">"; 0 found
  2. replace unlik() to domxml_unlink_node()?What is domxml_unlink_node?

    review:
    290 | ERROR | unlink() is a function name alias, use domxml_unlink_node()

I disappear for three days until next Monday.

luco’s picture

Status: Needs work » Needs review

good job! I saw how big that list was before. I think you can change to needs review; I'll do that for you.

please note, it could be a couple of days until official reviewers go over your module.

meanwhile, you might want to consider evaluating other developers' code as per the PAReview bonus program.

please read the directions there, choose other projects that you feel comfortable reviewing, and help fellow developers turn their sandbox projects into full-scale modules. that'll help speed up your own review process.

cheers

jeffstric’s picture

I back today, thank for your suggest,I'll choose some project to review.

jeffstric’s picture

Issue summary: View changes

clear git link

jeffstric’s picture

why a more h2 tag?

jeffstric’s picture

Issue summary: View changes

remove Issue Summary

jeffstric’s picture

Issue summary: View changes

still have problem

likebtn’s picture

1. imageFactory.info:
- What about capitalizing the first letter of the module name, it would look better in Drupal Module list:
name = Smarter image factory

2. README.txt: the file looks like a mess now:)
- extra lines:

file_managed

table.

- wrong comma placement:
resize ,add

- first letter should be capitalized:

module url
    http://drupal.org/sandbox/jeffstric/1937132

3. imageFactory.module:
- imageFactory_menu(): use t() for titles and descriptions.

jeffstric’s picture

Thank you,I fix the problem.
But Do not use t() in hook_menu().^^

jongagne’s picture

Status: Needs review » Needs work

Recommendations

  • Include capitalize letters where necessary.
  • Change fonts manage to Manage Fonts.
  • Creative configure page that allows the user to access the factory administration pages easier.
  • Give image selector a grey tint because when a user uploads a larger file with a white background it is very hard to notice the image selector.
  • When you upload a font to the system the 'upload fonts' and 'back to image factory' links appear twice; once above the main content and once below.
  • There is no option to add text onto the image.
  • Remove 'apply width and height to drag area' h1 and just put an Apply button on the upload image screen.
  • Once you have uploaded an image, there is no option to remove it.
  • Give users the option to edit the image name.
jongagne’s picture

Issue summary: View changes

a more other review

jeffstric’s picture

Thanks very much. Recently I'm so busy , so there are some delay to reply you.

Include capitalize letters where necessary.
I changed some title that not capitalize.
Change fonts manage to Manage Fonts.
Fixed the problem.
Creative configure page that allows the user to access the factory administration pages easier.
You can find image factory's entry in media area in configuration page.
Give image selector a grey tint because when a user uploads a larger file with a white background it is very hard to notice the image selector.
Thanks to remind me.
Grey tint will block select area,so I add a grey border to help users to distinguish.
When you upload a font to the system the 'upload fonts' and 'back to image factory' links appear twice; once above the main content and once below.
I change the solution:the link below only show when there are more than ten fonts item.
There is no option to add text onto the image.
The option will show when you complete resize action.
Remove 'apply width and height to drag area' h1 and just put an Apply button on the upload image screen
Some people may don't know the purpose of width and height input ,so I didn't remove it.
Once you have uploaded an image, there is no option to remove it.
Good tips,I add delete function.
Give users the option to edit the image name.
I add rename function.

Any problem ,please contact me .Cheer! :)

jeffstric’s picture

Status: Needs work » Needs review

Still need review.

pagolo’s picture

  • Why imageFactory? image_factory is better
  • Please test your module with coder
  • Please use t() function where possible
  • If I send a font it works fine, but if I send an image I get this error: The file could not be uploaded, because the destination /home/paolo/public_html//sites/default/files/imageFactory/upload/2013/04/01779 is invalid
jeffstric’s picture

Why imageFactory? image_factory is better
Change it! ^^
Please test your module with coder
I think code standard check has some mistakes,see #9
Please use t() function where possible
I'm not sure where i can use t in other place.I try t in menu hook,but this cause a error in review tools.Can you give me some suggests?
f I send a font it works fine, but if...
The bug is fixed.Thanks to report.

I will disappear for three days , welcome to report any problems, I enjoy it!

jeffstric’s picture

Issue summary: View changes

more review

pagolo’s picture

Please use t() function where possible
I'm not sure where i can use t in other place.I try t in menu hook,but this cause a error in review tools.Can you give me some suggests?

No need to use t() when you implement hook_menu...
Otherwise you can use t() format feature, for example
drupal_set_message(t('Delete image: !file success', array( '!file' => $file->filename)));

file image_factory_form.inc line 222

dimitrov.adrian’s picture

Some suggestion about usability. I think that if you using input type number or dropdown for size, size, angle will be better than now, also may be some predefined values will be good idea too. Other the color selecting tool doesn't work, i suppose when clicking and choising a color should be populated.

You should have to use t() instead pure messages.

jeffstric’s picture

Thank you ! I have changed all messages in function drupal_set_message.

jeffstric’s picture

Hi , dimitrov.adrian:
1 What's the mean of "input type number"? I only know input's type has 'text' 'select' etc ...
2 If the size is dropdown, the dropdown will be very long .
3 predefined values: yeah, it's good idea ,I apply it in angle and colour field.
4 color selecting tool doesn't work: maybe you ignore the submit button of color picker. However , most off people do like you, so I change the solution : the color input will change with color picker,even you doesn't click submit button.
Thanks for you Good suggests!

jeffstric’s picture

Component: module » other
Assigned: jeffstric » Unassigned
Issue tags: +PAreview: review bonus

Add tag review bonus.
Note:
Please ignore the following errors in PAReview.sh.
1 | ERROR | Expected 1 space after ">"; 0 found.
PAReview.sh mistake Shift Arithmetic Right as two single angle bracket.
2 unlink() is a function name alias, use domxml_unlink_node()
What's function named 'domxml_unlink_node' , I think that's bug in PAReview.sh?

Welcome to report any problems! :)

nsuit’s picture

Great idea for a module! I think it will be very useful for in-place photo editing as opposed to having to use a separate application.
Here are some more usability suggestions:

  • I agree with dimitrov.adrian, a drop down list with suggested font sizes (point sizes) in various intervals (e.g. 8,12,14,18,24,36,72,other) would allow the users to pick a predefined size. This is important because not all users know what commonly used text sizes are. In addition to the drop down you could enable font size by user input. If a user selects the "other" option you could show an input field or use something like a combo box field.
  • The color picker was still confusing to me even though I am a graphic designer and work with this tool everyday. I thought that I could use my crosshair cursor to select the colors until I figured out I had to drag the circle around. The circle was kind of hidden in a corner and hard to see. Maybe you could specify a default color that would move that selection circle to the middle of the color picker field so the tool is more intuitive.
  • Please consider adding cancel buttons to the image and font upload forms. There was no way to opt out of that process if I decided to go back to the list without uploading anything.
nsuit’s picture

Status: Needs review » Needs work

Forgot to set this to needs work.

luco’s picture

hi @nsuit, I aggree with your suggestions for @jeffstric, except that a combo box field might be a little too much. we, beginner module developers, have enough on our plate as it is ;) but I would ask him to consider this as a future feature.

@jeffstric, maybe you could add a help page explaining users how to work the color picker?

also, I took the liberty of reviewing the text on your project page. here you go:

About

The Image factory module can be used to resize images on the fly and add infinite captions with custom fonts. It saves pictures in the public files path and adds records to the file_managed table.

Usage

First time
Upload ttf font files [in sites/all/files/fonts etc.] <- please provide the path.

Temporary pictures

When you create pictures using Image factory, it saves temporary files in public://imagefactory/tmp. There's a cron job which automatically removes them.

How to use images you create

Try the FileField Sources module, it has a Reference existing function.

sorry for my absence... I've been busy working on my module :)

cheers

jeffstric’s picture

Status: Needs review » Needs work

Hi nsuit:
Sorry for a few days' delay to reply you suggests.I am very busy recently.

"I agree with dimitrov.adrian, a drop down list .."
I change the angle and size field to select type, but I don't want to reply on 'combo box field' module,so I imitate that : if you choose Others, there are popup to receive your input number and append it to select's option.
"The color picker was still confusing to me even .."
Sorry for my poor English. I can't the understand this suggest completely.
About "drag the circle around",I add basic usage in document.
About "default color",I set "405985" as default colour,which allow white circle in the middle of select area.
About "The circle was kind of hidden in a corner and hard to see" you can ignore the corner circle which is used to submit the colour , because the colour field's value will change when you drag the circle in colour choose area.
"Please consider adding cancel buttons to t .."
I add two cancel button to go back list page.

Welcome to report any problems.Thank you! :)

jeffstric’s picture

Status: Needs work » Needs review

@luco:Thank you , I am glad to apply your suggests.
1 About "could add a help page explaining users how to work the color picker",
I add basic usage of color picker.
2 The text on project page.
Thanks to help me correct it. It's very specific. I have applied your suggests. :)

klausi’s picture

Issue tags: -PAreview: review bonus +PAreview: security
StatusFileSize
new3.26 KB

Review of the 7.x-2.x branch:

This automated report was generated with PAReview.sh, your friendly project application review script. You can also use the online version to check your project. You have to get a review bonus to get a review from me.

manual review:

  1. colorpicker appears to be 3rd party code. 3rd party code is not generally allowed on Drupal.org and should be deleted. This policy is described in the getting involved handbook. It also appears in the terms and conditions you agreed to when you signed up for Git access, which you may want to re-read, to be sure you're not violating other terms. The Libraries API module is a recommended method for adding 3rd party dependencies without directly including the code on Drupal.org.
  2. "variable_set('image_factory', time());": all variables defined by your module need to be removed in hook_uninstall().
  3. image_factory_font_del(): this is vulnerable to CSRF exploits. You must not execute destructive actions directly on GET requests, use confirmations forms or link tokens instead. See also http://epiqo.com/en/all-your-pants-are-danger-csrf-explained . This is a security blocker. And please don't remove the security tag, we keep that for statistics and to show examples of security problems.
  4. image_factory_font_del(): There is no ":" placeholder for t(), use "@" or "%" instead.

Removing review bonus tag, you can add it again if you have done another 3 reviews of other projects.

jeffstric’s picture

Status: Needs work » Needs review

Sorry for forgetting to check code standard in PAReview.sh.
1 I remove the color picker, now the module will use color picker in libraries.
2 done!
3 Thank you , it's very important suggestion! done.
4 done!

Thanks to reply.

klausi’s picture

Status: Needs review » Needs work

Sorry for the delay. Make sure to review more project applications and get a new review bonus and this will get finished faster.

Review of the 7.x-2.x branch:

  • DrupalPractice has found some issues with your code, but could be false positives.
    
    FILE: /home/klausi/pareview_temp/fonts_manage.inc
    --------------------------------------------------------------------------------
    FOUND 0 ERROR(S) AND 2 WARNING(S) AFFECTING 2 LINE(S)
    --------------------------------------------------------------------------------
     91 | WARNING | Do not use the raw $form_state['input'], use
        |         | $form_state['values'] instead where possible
     95 | WARNING | Do not use the raw $form_state['input'], use
        |         | $form_state['values'] instead where possible
    --------------------------------------------------------------------------------
    
    
    FILE: /home/klausi/pareview_temp/image_factory_form.inc
    --------------------------------------------------------------------------------
    FOUND 0 ERROR(S) AND 8 WARNING(S) AFFECTING 7 LINE(S)
    --------------------------------------------------------------------------------
     108 | WARNING | Do not use the raw $form_state['input'], use
         |         | $form_state['values'] instead where possible
     111 | WARNING | Do not use the raw $form_state['input'], use
         |         | $form_state['values'] instead where possible
     120 | WARNING | Do not use the raw $form_state['input'], use
         |         | $form_state['values'] instead where possible
     121 | WARNING | Do not use the raw $form_state['input'], use
         |         | $form_state['values'] instead where possible
     121 | WARNING | Do not use the raw $form_state['input'], use
         |         | $form_state['values'] instead where possible
     129 | WARNING | Do not use the raw $form_state['input'], use
         |         | $form_state['values'] instead where possible
     160 | WARNING | Do not use the raw $form_state['input'], use
         |         | $form_state['values'] instead where possible
     161 | WARNING | Do not use the raw $form_state['input'], use
         |         | $form_state['values'] instead where possible
    --------------------------------------------------------------------------------
    
    Time: 0 seconds, Memory: 8.50Mb
    

This automated report was generated with PAReview.sh, your friendly project application review script. You can also use the online version to check your project. You have to get a review bonus to get a review from me.

manual review:

  1. image_factory_fonts_delete_confirm(): module files are always loaded at a fully bootstrapped Drupal, so no need for drupal_load() here.
  2. image_factory_fonts_image_create(): why are you writing to $_POST? That looks very wrong. Why can't you pass the settings along to image_factory_fonts_image_create() as usual function parameter?
  3. image_factory_save(): use drupal_json_output() to return JSON stuff with the proper HTTP headers.
  4. image_factory_save(): this is vulnerable to CSRF exploits. You are just taking values out of $_POST without verifying any token to check that the user made that request willingly.
  5. image_factory_resize.tpl.php: do not write form elements yourself, use the drupal form API to build forms, that will also solve your security problem from my previous point. See http://api.drupal.org/api/drupal/includes!ajax.inc/group/ajax/7 . The form and ajax API are pretty powerful and you should be able to solve your problems without using any $_POST in your module. That will also clear up your security problems.
  6. image_factory_resize.tpl.php: do not hard code JS into templates! Always use drupal_add_js() or #attached on form arrays to properly inject the Javascript.
  7. "drupal_set_message('Remove directory:' . image_factory_get_dir($v, TRUE, FALSE) . ' fail.', 'warning');": all user facing text must run through t() for translation. Please check all your strings.
jeffstric’s picture

Status: Needs work » Needs review

Sorry for long time delay.
I spend a week to change in this module. Now , module use drupal's form ajax property to avoid CSRF exploits and split javascript code in separate files.
Welcome to give any suggests.

jeffstric’s picture

Status: Needs review » Needs work

When I test in other server find a problem, but it's too late now, I will fix tomorrow. Stop review for a day.

jeffstric’s picture

Issue summary: View changes

Change demo url

jeffstric’s picture

Status: Needs work » Needs review

Solve the problem,need review now!demo

kscheirer’s picture

Title: image factory » [D7] Image Factory
Status: Needs review » Reviewed & tested by the community

This is a weird default value: $clear_time_last = variable_get('image_factory_cron_time', 'sites/default/files'); shouldn't the default be a time() or 0 instead?

In image_factory_image_list() you have 2 queries using like - db_query() thinks % is an escape character, so you need to use %% instead.

In image_factory_image_edit_form() you can use range() and drupal_map_assoc() functions to generate the option list in a cleaner manner.

You could probably put all your drupal include files in a single includes/ directory if that's easier. And some cleanup like using drupal_add_js() instead of putting js directly into your template file is a good idea.

But none of these are blockers, looks like a useful module.

----
Top Shelf Modules - Enterprise modules from the community for the community.

jeffstric’s picture

Deal kscheirer:
Thanks fro your reply and sorry for delay.

This is a weird default value: $clear_time_last = variable_get('image_factory_cron_time', 'sites/default/files'); shouldn't the default be a time() or 0 instead?
Yeah, it's a mistake and solve it.
In image_factory_image_list() you have 2 queries using like - db_query() thinks % is an escape character, so you need to use %% instead.
I use
db_query("SELECT COUNT(*) FROM {file_managed} fm where  fm.filemime like :pattern", array(':pattern' => 'image/%'))

to solve, because the double '%' looks very strange.

In image_factory_image_edit_form() you can use range() and drupal_map_assoc() functions to generate the option list in a cleaner manner
Yes, I change it.
You could probably put all your drupal include files in a single includes/ directory if that's easier. And some cleanup like using drupal_add_js() instead of putting js directly into your template file is a good idea.
1 I will put the file in includes/ directory tomorrow,because too late now.
2 A question:There is a js script in template file. However if I use drupal_add_js function,I have to put a js in php file(The reason of couldn't load external file is that I need transfer a variable to js), It looks very strange in my view. So I don't want to change it.

If there is any question and suggest, please tell me ^^.

jeffstric’s picture

OK , I put all my drupal include files in a single includes/ directory .

klausi’s picture

Status: Reviewed & tested by the community » Fixed

Sorry for the delay. Make sure to review more project applications and get a new review bonus and this will get finished faster.

Review of the 7.x-2.x branch:

  • DrupalPractice has found some issues with your code, but could be false positives.
    
    FILE: /home/klausi/pareview_temp/includes/fonts/fonts_manage.inc
    --------------------------------------------------------------------------------
    FOUND 0 ERROR(S) AND 2 WARNING(S) AFFECTING 2 LINE(S)
    --------------------------------------------------------------------------------
     123 | WARNING | Do not use the raw $form_state['input'], use
         |         | $form_state['values'] instead where possible
     124 | WARNING | Do not use the raw $form_state['input'], use
         |         | $form_state['values'] instead where possible
    --------------------------------------------------------------------------------
    
    
    FILE: /home/klausi/pareview_temp/includes/form/image_factory_form.inc
    --------------------------------------------------------------------------------
    FOUND 0 ERROR(S) AND 8 WARNING(S) AFFECTING 7 LINE(S)
    --------------------------------------------------------------------------------
     108 | WARNING | Do not use the raw $form_state['input'], use
         |         | $form_state['values'] instead where possible
     111 | WARNING | Do not use the raw $form_state['input'], use
         |         | $form_state['values'] instead where possible
     120 | WARNING | Do not use the raw $form_state['input'], use
         |         | $form_state['values'] instead where possible
     121 | WARNING | Do not use the raw $form_state['input'], use
         |         | $form_state['values'] instead where possible
     121 | WARNING | Do not use the raw $form_state['input'], use
         |         | $form_state['values'] instead where possible
     129 | WARNING | Do not use the raw $form_state['input'], use
         |         | $form_state['values'] instead where possible
     160 | WARNING | Do not use the raw $form_state['input'], use
         |         | $form_state['values'] instead where possible
     161 | WARNING | Do not use the raw $form_state['input'], use
         |         | $form_state['values'] instead where possible
    --------------------------------------------------------------------------------
    
    
    FILE: /home/klausi/pareview_temp/includes/lib/image_resize.inc
    --------------------------------------------------------------------------------
    FOUND 0 ERROR(S) AND 1 WARNING(S) AFFECTING 1 LINE(S)
    --------------------------------------------------------------------------------
     8 | WARNING | Class name must be prefixed with the project name
       |         | "image_factory" (omitting underscores)
    --------------------------------------------------------------------------------
    

This automated report was generated with PAReview.sh, your friendly project application review script. You can also use the online version to check your project. You have to get a review bonus to get a review from me.

manual review:

  1. theme_image_factory_file_formatter_table(): do not create image markup yourself, use theme('image', ...) instead. Same for theme('item_list', ...).
  2. theme_image_factory_file_formatter_table(): that function should be registered in hook_theme(), no?
  3. image_factory_path_public_to_ser(): why do you need that function? PHP stream wrappers can handle public:// just fine as file URI, no? Same for image_factory_path_ser_to_web() and possibly others.
  4. image_factory_image_resize_validate(): hook_validate() does not exist, see https://drupal.org/node/1354#forms on how to document forms.
  5. image_factory_resize.tpl.php: do not embed javascript in templates, use dedicated JS files for that. And the JS should use Drupal.behaviors, see https://drupal.org/node/756722

Usage of $form_state['input'] is almost a blocker, but I cannot see how it could be exploited in this case, so it is not a security issue. Please fix it anyway.

Thanks for your contribution, jeffstric!

I updated your account to let you promote this to a full project and also create new projects as either a sandbox or a "full" project.

Here are some recommended readings to help with excellent maintainership:

You can find lots more contributors chatting on IRC in #drupal-contribute. So, come hang out and get involved!

Thanks, also, for your patience with the review process. Anyone is welcome to participate in the review process. Please consider reviewing other projects that are pending review. I encourage you to learn more about that process and join the group of reviewers.

Thanks to the dedicated reviewer(s) as well.

luco’s picture

yaaay! congrats!

jeffstric’s picture

Deal klausi:
Thanks your comments and support,I solve the problems except No.2 and No.3,the reason is below.

No.2 theme_image_factory_file_formatter_table(): that function should be registered in hook_theme().No?
Without register, theme('image_factory') will not work.
No.3 image_factory_path_public_to_ser(): why do you need that function? PHP stream wrappers can handle public:// just fine as file URI, no? Same for image_factory_path_ser_to_web() and possibly others.
I find a problem in my work.
$result_public = imagepng($im, 'public://image_factory/test.png');//FALSE
$result_absolute = imagepng($im, '/home/jeffstric/www/drupal/sites/default/files/image_factory/test.png');//TRUE
"public://" uri doesn't work in imagepng ,imagejepg and imagegif , I have to use absolute path in server

If you have any solution , please tell me.

jeffstric’s picture

Thank you , luco, and thanks to all, I'm glad to finish the review.

Automatically closed -- issue fixed for 2 weeks with no activity.

Anonymous’s picture

Issue summary: View changes

Change demo link

avpaderno’s picture

Component: other » module
Issue summary: View changes