I am developing a software that is licensed AGPLv3. It's a simple tool that takes a user-provided string and generates an image based on it.

What license is the generated image under? Can I choose the license, or does it inherently have some license simply because it is derived from user input?

I'd like to require that generated images are attributed to my software, e.g. CC-BY 4.0. Can I do that?

  • What's in the image? Is it derived solely from the properties of the provided string? Or does the string code for selecting particular elements from a larger array? Or is it built from components selected from some repository according to the exact content of the string? Does your code copy selected portions of its own source code into the image according to the exact properties of the string? Or something else?
    – MadHatter
    Jul 10, 2020 at 5:32
  • @MadHatter It's a tool that makes an SVG. For each letter, a shape is drawn. Each shape is then combined to create a unified image. I suppose it would be a similar situation to if my tool wrote the user's string in a font that I'd made and then took a screenshot. I doubt the boilerplate in the SVG constitutes "own source code". Jul 10, 2020 at 5:38

2 Answers 2


The way I'd be inclined to handle this is as if it were a program which ships with a corpus of clip-art, then selects and arranges elements of that corpus according to user-provided instructions, expressed via an input string.

Firstly, it is well-established here that the licence on a piece of software does not generally affect the licence status of the software's output. So in answer to your first question, the licence status of the generated image is, most likely, a function of the licence on the letter shapes.

We have several questions around here already (eg this one, and this one) which advance the idea that the code and the other digital assets in a piece of shipping software do not have to be under the same licence. If you distribute your code under AGPLv3 and the letter shapes under (say) CC BY 4.0, I think you will achieve the desired effect: people offering your code to others, including as a network service, will have to provide full AGPLv3 source, whereas anyone using the output images need only credit you.

For maximum compliance, it may help if your program makes it clear when it produces the output that, as a consequence of the use of inputs supplied by you, the output is under CC BY. Also, when split-licensing like this, it is very helpful not to mix the two bodies of differently-licensed content. If the images can be loaded from an external file, rather than being incorporated into the program, it helps avoid misunderstandings about which licence covers any particular element of the distributed whole.

  • Thanks for your advice. The output is much more geometry than art, though - I like the clipart comparison, but I'm unsure that a simple string like "a r r 0 1 1 2r 0" (part of an SVG path - this draws a semicircle) can be licensed at all (though I'm sure that your advice would apply to more complex paths that form more distinct images). If I kept all these strings in a file with a CC header, and my programme reads that file and compiles the strings together, would that be sufficient? Jul 10, 2020 at 19:24
  • @snazzybouche that sounds reasonable to me.
    – MadHatter
    Jul 10, 2020 at 19:43
  • Your wisdom is sage. I'll do that, and if I somehow get sued down the line then so be it. Jul 10, 2020 at 19:59
  • 2
    Note that in the US and other places, the law does not recognize copyright on simple expressions that are more utilitarian than creative expression. For example, fonts are actually not copyrightable. Thus, it is possible that a successful argument could be made that the shapes you distribute with your app are not eligible for copyright, and therefore it doesn't matter how you attempt to license or restrict them because you don't have the legal grounds to to so. IANAL; seek professional advice.
    – josh3736
    Jul 10, 2020 at 23:15
  • 1
    @josh3736 fair point, and I think the OP admits as such in hir comment above. Nevertheless, even the US accepts that coypright can extend to fonts which are defined by the machine instructions followed to create them ("In 1992, the US Copyright Office determined that digital outline fonts had elements that could be protected"), which these are. The advice to seek professional legal input, whilst good, applies to all answers on this site.
    – MadHatter
    Jul 11, 2020 at 5:49

I'd like to require that generated images are attributed to my software, e.g. CC-BY 4.0. Can I do that?

It would do no good. Even if you could, nothing would stop me from removing that restriction from your licensing, distribution, installer, or whatever and redistributing it as the AGPLv3 allows. You can't both put something under the AGPLv3 and also impose additional restrictions on it.

  • 1
    I don't think the OP was asking how to put the generated images under the requirements of both AGPL and CC BY, not least because that would be pointless: AGPL requires attribution already.
    – MadHatter
    Jul 10, 2020 at 19:41
  • 1
    MadHatter's comment is correct Jul 10, 2020 at 20:00
  • 1
    @MadHatter I'm not answering whether he could put them under both. I'm answering whether he could encumber them at all, and the answer is that even if he could, anyone else could remove that encumbrance because the AGPLv3 allows them to. Any method he might use to cause his software to encumber its output could be removed by anyone else under the terms of the AGPLv3 that apply to the software. Jul 10, 2020 at 21:57
  • @DavidSchwartz what makes you think that? The licence of a piece of software doesn't generally affect its output - the FSF, authors of the AGPL, agree. The licence on the outputs (generally) depends solely on the licence of the inputs. The licence on the software certainly affects all the things to which it applies, but it no more affects what you may do with its outputs than it affects what you may do with the OS on the computer on which you run it.
    – MadHatter
    Jul 11, 2020 at 5:30
  • You may use a piece of AGPL software to write a proprietary program (see link), and the use of AGPL tools doesn't allow the recipient of that proprietary program to declare your code subject to AGPL (and therefore, as you say, free of any further license obligations). No more can they in this case.
    – MadHatter
    Jul 11, 2020 at 5:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.