bgrabitmap / lazpaint

🎨 Cross-platform image editor with raster and vector layers similar to Paint.Net written in Lazarus (Free Pascal)
https://lazpaint.github.io/
GNU General Public License v3.0
401 stars 55 forks source link

New functions in the texts #119

Open RafaMartorell opened 4 years ago

RafaMartorell commented 4 years ago

I think that LazPaint is very good for making decorative texts in a very simple but effective way. But it lacks two functions that are essential for me, to manipulate the space between letters and the space between lines. In both positive values, zoom out, and negative, zoom in. With these two functions to work contexts will be one of the best options.

circular17 commented 4 years ago

Do you suggest to add a fixed spacing between letters and lines? Not stretching letters just spacing?

RafaMartorell commented 4 years ago

That's right, being able to change the s p a c e between letters and also

between lines,

zoom in or out.

c-sanchez commented 4 years ago

I guess you want something as the options for texts as in Microsoft Word, where you can set the space between letters and lines. Also I would like a option to use fonts as "monospaced" even if aren't. So maybe a "grid" for text can be ok?

So we can set the space between lines (horizontal lines), space between characters (vertical lines) and also make this if want be monospaced. Of course, I'm not sure about that idea, but is a quick idea which can be useful maybe :P

I remember I wanted to modify the text in a game, since all text was made on pictures, with a graphics editor as Lazpaint it would be enough, however I didn't find it easy and end up leaving that. The reasons: 1 We can't make the text with aliasing. 2 I can't modify the text, so I need remake the text if I want change any detail. For that's why I've asked for text layers before. I had read that with the Edit shape tool that allows that, at least in the development branch, right?

This text was made in lazpaint, the size 6 and 12 are aliased (probably 18, 24, 30, ... too), but the rest arent, so the option can be nice lazpaint-text0175a The same text made in pictbear, here all the text is aliased, haven't option to disable alias, but works as example :P pictbear-text0175a

Font: Press Start https://www.dafont.com/es/press-start.font,

RafaMartorell commented 4 years ago

or gimp for example... imagen

circular17 commented 4 years ago

Ok I got it.

I need to find a way to optimize space in the top toolbars as I prefer it not being on two rows. Maybe I will do it like the pen size drop down.

RafaMartorell commented 4 years ago

And a floating window when the text tool is chosen, with all the options for it? Thanks for answering.

circular17 commented 4 years ago

I was thinking that small part of the options would be visible in the top toolbar and when you hover it you would have a dropdown with all other options.

But indeed a floating window could be possible as well.

RafaMartorell commented 4 years ago

I think it's a very good idea, but considering that the options for text can be many, I also see a good idea in a toolbar button that opens a floating window with all the options. This is very comfortable when working, because this window is placed where one wishes and facilitates editing. I really like the concept of LazPaint, and one of its strengths that can attract users is the part of texts, which simply allows you to work wonders. I think he would treat the texts as exclusive clues and thus facilitate editing or corrections. I mean that when a text is entered a special hint is created. Now it is not like that, and when you exit the edition later there are functions that can no longer be modified, such as shadows. I am aware that I don't know about programming and I can only help by contributing ideas, but I don't know their viability.

circular17 commented 4 years ago

Yeah that seems convenient.

Shadows is in fact the only thing about texts that cannot be edited. I am not incorporating it as a vector thing because I would like shadows to be handled on the layer level. In the new version, there is a script for layer shadow. It can be used to add a shadow layer and also to update it.

In the future I imagine shadow layers to be updated automatically. https://github.com/bgrabitmap/lazpaint/issues/69

RafaMartorell commented 4 years ago

You are really doing a great job and a very useful application. I am sure that with the new updates LazPaint will be much better. If you need people to test and report I can help you, you can let me know about the new features here or by mail rafamar.mm.ig@gmail.com Thank you.

circular17 commented 4 years ago

Well you can help test version 7.0.8. I just released it. It is a beta version

RafaMartorell commented 4 years ago

I have downloaded and tested

I really like that you have grouped the tools

What happened to the shadows of the texts? It was a very good function. The post-editing enhancement is now very good, you can re-edit the text with full control, but I still miss the shadows :-)

There is an error when I minimize the application after maximizing the floating windows have disappeared. I attached a video, I use mint 19.03, can you see in the next link https://drive.google.com/open?id=1tNLSeGIz0LQbVfTa4otzasPGiLCqPJbq

An observation, to help improve the appearance, I see that you take good care of it

Most importantly, THANK YOU FOR THIS EXCELLENT WORK YOU'RE DOING.

circular17 commented 4 years ago

About the shadows, as said before, you can now use the menu Script > Layer shadow.

About the showing of the floating windows, I have applied a fix on the dev branch.

I chose to represent the layers as oblique to show that they are on top of another. I felt that the rectangular appearance did not show that.

RafaMartorell commented 4 years ago

I just tried it, the script seems like a good option, but to work with texts it is very good that the shadows are as before, that they are part of the text, because if I want to make a correction and move the text, the shadow does not move . It is true that I can reapply the script ... this will have to be explained to people so that they do not stress this issue, once it is known it is simple. Keep in mind that shadows are very useful for giving visibility to texts on images, and these have to be easy to insert and edit. I would leave the script, but I would also leave the old shadow option, which was very good, with the possibility of being able to edit it whenever desired. It's just an opinion, any decision you make will be good.

circular17 commented 4 years ago

Yes that's something to explain. I agree it is more convenient to have the shadow directly with the text. Though considering the whole story, it is a bit different.

It is rather slow to render a shadow, so I prefer not have it part of a vectorial shape. Also you may want a shadow on another type of vector object like a rectangle. So in the end, that would mean adding the shadow to each vectorial shape.

On the other side, I would like the layers to have a shadow. But if you add a shadow to a vectorial text object, and a shadow on the layer on top of that, that would be redundant and twice as slow. I would prefer to avoid such as situation.

A third reason is that it is better to put text on a separate layer anyway because it is better to separate raster and vector when possible. Indeed, a raster image transformed into vector object takes more space in memory, because you have the rendered layer and also the original image.

RafaMartorell commented 4 years ago

The problem is that I do not know about programming and I ignore all the problems that may sometimes imply what I propose about applications. But after the explanation you have given me it seems very reasonable not to use the shadow as part of the text. With a small tutorial, which I can help you to do, once it is known we are really facing an improvement and more optimal than my proposal.

c-sanchez commented 4 years ago

2* I can't modify the text, so I need remake the text if I want change any detail. For that's why I've asked for text layers before. I had read that with the Edit shape tool that allows that, at least in the development branch, right?

What? I'm blind? indeed if possible with the Edit shape tool hahaha

This text was made in lazpaint, the size 6 and 12 are aliased (probably 18, 24, 30, ... too), but the rest arent, so the option can be nice

I just realized that actually all the text is anti-aliased, by some reason size 6 and 12 no, although if you move the text this is automatically anti-aliased too. Curious behaviour.

I chose to represent the layers as oblique to show that they are on top of another. I felt that the rectangular appearance did not show that.

I see, I've been wondering the same thing for a long time, I hadn't seen it that way but you have reason heh.

About the options, maybe a new Tool options window? I think can be better than add every option in the toolbar, although it would require a side panel like the layers/colours to be always visible. Anyway here a idea laz_to

laz_to

circular17 commented 4 years ago

@RafaMartorell You are welcome to do some tutorials. I can link to them on LazPaint facebook page for example.

@c-sanchez For some reason I cannot see your images

I just realized that actually all the text is anti-aliased, by some reason size 6 and 12 no, although if you move the text this is automatically anti-aliased too. Curious behaviour.

In this case, the source font is not antialiased, so if you get it to the right size to get the dots aligned with the pixels, then the borders are crisp. It is a matter of luck.

circular17 commented 4 years ago

I've just added aliasing option for text in next version, so that you can get aliasing all the time.

RafaMartorell commented 4 years ago

The images of c-sanchez imagen imagen Both options proposed by c-sanchez seem very good idea to facilitate the configuration of texts, this window could appear only when texts are inserted or edited. And close when working with other tools. Even in this window you could include what you comment on the spaces between letters and between lines, which I think will be something very well received for users.