[Geoserver-devel] WMS Animator - GIF disposal method option

I’ve implemented a new format option for the WMS Animator named gif_disposal_method. Through this option it can be specified what to do with the previous GIF frame once a new frame is displayed. Valid values are none, doNotDispose, restoreToBackgroundColor and restoreToPrevious. The default value is none. Before, this disposal method (none) was set statically for animated gifs. Using this method, gif animations don’t hide their previous frames. In other words, new frames were just rendered on top of the previous frames. With the newly added gif_disposal_method option, for example it is possible to hide all previous frames by changing the disposal method to restoreToBackgroundColor .

All four valid option values are also listed and described in the GIF specification (23. C IV Disposal Method).

The option gif_disposal_method can be used like the other two format options parameter gif_loop_continuously and gif_frames_delay.

Example usage:

http://localhost:8080/geoserver/wms/animate?layers=topp:states,sf:restricted&format=image/gif;subtype=animated&aparam=bbox

&avalues=-180,-90,180,90,-125,25,-67,50&format_options=gif_loop_continuosly:true;gif_disposal_method:restoreToBackgroundColor

&width=640

For the implementation it was required to add and change some lines in the following files:

· src/wms/src/main/java/org/geoserver/wms/WMS.java

· src/wms/src/main/java/org/geoserver/wms/map/GIFMapResponse.java

I’ve also added a drop down box where the default disposal method can be set to the WMS admin page of the Geoserver.

Do you think we can implement this new feature into the GeoServer stable version?

Regards

Maurizio La Mela

That sounds like a useful new feature Maurizio.

If you want to create a Jira issue (for the release notes and for any discussion) and pull request (for implementation, test case, docs).

Two ideas for feedback:

  • Shorten “*gif_disposal_method” to "*gif_disposal" (since we method is going to be obvious from context)
    - check other format options and check if they do camel case or “_” between terms (gif_disposal:background_color or gif_disposal:BackgroundColor). I left off the “restoreTo” as I think that may be obvious from context (i.e.

And one question:

  • Is GIF the only animation we got going on? Should we be making these terms more general (loop_continously, frames_delay, frame_disposal).
···

On 24 September 2015 at 07:59, Maurizio La Mela <maurizio.la.mela@anonymised.com> wrote:

I’ve implemented a new format option for the WMS Animator named gif_disposal_method. Through this option it can be specified what to do with the previous GIF frame once a new frame is displayed. Valid values are none, doNotDispose, restoreToBackgroundColor and restoreToPrevious. The default value is none. Before, this disposal method (none) was set statically for animated gifs. Using this method, gif animations don’t hide their previous frames. In other words, new frames were just rendered on top of the previous frames. With the newly added gif_disposal_method option, for example it is possible to hide all previous frames by changing the disposal method to restoreToBackgroundColor .

All four valid option values are also listed and described in the GIF specification (23. C IV Disposal Method).

The option gif_disposal_method can be used like the other two format options parameter gif_loop_continuously and gif_frames_delay.

Example usage:

http://localhost:8080/geoserver/wms/animate?layers=topp:states,sf:restricted&format=image/gif;subtype=animated&aparam=bbox

&avalues=-180,-90,180,90,-125,25,-67,50&format_options=gif_loop_continuosly:true;gif_disposal_method:restoreToBackgroundColor

&width=640

For the implementation it was required to add and change some lines in the following files:

· src/wms/src/main/java/org/geoserver/wms/WMS.java

· src/wms/src/main/java/org/geoserver/wms/map/GIFMapResponse.java

I’ve also added a drop down box where the default disposal method can be set to the WMS admin page of the Geoserver.

Do you think we can implement this new feature into the GeoServer stable version?

Regards

Maurizio La Mela


Monitor Your Dynamic Infrastructure at Any Scale With Datadog!
Get real-time metrics from all of your servers, apps and tools
in one place.
SourceForge users - Click here to start your Free Trial of Datadog now!
http://pubads.g.doubleclick.net/gampad/clk?id=241902991&iu=/4140


Geoserver-devel mailing list
Geoserver-devel@anonymised.comsts.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel


Jody Garnett

Thanks for your feedback Jody.

Like suggested I’ve shortened “gif_disposal_method” to “gif_disposal”. Also, I’ve shortened the format option terms restoreToBackgroundColor to backgroundColor and restoreToPrevious to previous.
The syntaxes I chose are fitting to the other already existing terms.
To answer your question:
Yes, GIF is currently the only format that can be used by animations, however I’ve kept the first suggested terms, e.g. gif_loop_continuously. If required I will shorten those terms, too.

I’ve opened a pull request, please see https://github.com/geoserver/geoserver/pull/1263
Could you please let me know whether the current request code can be accepted and merged?

Regards
Maurizio

···

2015-09-27 21:50 GMT+02:00 Jody Garnett <jody.garnett@anonymised.com>:

That sounds like a useful new feature Maurizio.

If you want to create a Jira issue (for the release notes and for any discussion) and pull request (for implementation, test case, docs).

Two ideas for feedback:

  • Shorten “*gif_disposal_method” to "*gif_disposal" (since we method is going to be obvious from context)
    - check other format options and check if they do camel case or “_” between terms (gif_disposal:background_color or gif_disposal:BackgroundColor). I left off the “restoreTo” as I think that may be obvious from context (i.e.

And one question:

  • Is GIF the only animation we got going on? Should we be making these terms more general (loop_continously, frames_delay, frame_disposal).


Jody Garnett

On 24 September 2015 at 07:59, Maurizio La Mela <maurizio.la.mela@anonymised.com> wrote:

I’ve implemented a new format option for the WMS Animator named gif_disposal_method. Through this option it can be specified what to do with the previous GIF frame once a new frame is displayed. Valid values are none, doNotDispose, restoreToBackgroundColor and restoreToPrevious. The default value is none. Before, this disposal method (none) was set statically for animated gifs. Using this method, gif animations don’t hide their previous frames. In other words, new frames were just rendered on top of the previous frames. With the newly added gif_disposal_method option, for example it is possible to hide all previous frames by changing the disposal method to restoreToBackgroundColor .

All four valid option values are also listed and described in the GIF specification (23. C IV Disposal Method).

The option gif_disposal_method can be used like the other two format options parameter gif_loop_continuously and gif_frames_delay.

Example usage:

http://localhost:8080/geoserver/wms/animate?layers=topp:states,sf:restricted&format=image/gif;subtype=animated&aparam=bbox

&avalues=-180,-90,180,90,-125,25,-67,50&format_options=gif_loop_continuosly:true;gif_disposal_method:restoreToBackgroundColor

&width=640

For the implementation it was required to add and change some lines in the following files:

· src/wms/src/main/java/org/geoserver/wms/WMS.java

· src/wms/src/main/java/org/geoserver/wms/map/GIFMapResponse.java

I’ve also added a drop down box where the default disposal method can be set to the WMS admin page of the Geoserver.

Do you think we can implement this new feature into the GeoServer stable version?

Regards

Maurizio La Mela


Monitor Your Dynamic Infrastructure at Any Scale With Datadog!
Get real-time metrics from all of your servers, apps and tools
in one place.
SourceForge users - Click here to start your Free Trial of Datadog now!
http://pubads.g.doubleclick.net/gampad/clk?id=241902991&iu=/4140


Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

Certainly, we try and run a tight ship with the geoserver codebase, so if you have addressed my initial concerns/suggestions then you are good to merge.

Thanks again for including documentation in your pull request, the extra effort taken by yourself and others is what makes geoserver a great project to work with.

···

On 30 November 2015 at 11:37, Maurizio La Mela <maurizio.la.mela@anonymised.com> wrote:

Thanks for your feedback Jody.

Like suggested I’ve shortened “gif_disposal_method” to “gif_disposal”. Also, I’ve shortened the format option terms restoreToBackgroundColor to backgroundColor and restoreToPrevious to previous.
The syntaxes I chose are fitting to the other already existing terms.
To answer your question:
Yes, GIF is currently the only format that can be used by animations, however I’ve kept the first suggested terms, e.g. gif_loop_continuously. If required I will shorten those terms, too.

I’ve opened a pull request, please see https://github.com/geoserver/geoserver/pull/1263
Could you please let me know whether the current request code can be accepted and merged?

Regards

Maurizio


Jody Garnett

2015-09-27 21:50 GMT+02:00 Jody Garnett <jody.garnett@anonymised.com>:

That sounds like a useful new feature Maurizio.

If you want to create a Jira issue (for the release notes and for any discussion) and pull request (for implementation, test case, docs).

Two ideas for feedback:

  • Shorten “*gif_disposal_method” to "*gif_disposal" (since we method is going to be obvious from context)
    - check other format options and check if they do camel case or “_” between terms (gif_disposal:background_color or gif_disposal:BackgroundColor). I left off the “restoreTo” as I think that may be obvious from context (i.e.

And one question:

  • Is GIF the only animation we got going on? Should we be making these terms more general (loop_continously, frames_delay, frame_disposal).


Jody Garnett

On 24 September 2015 at 07:59, Maurizio La Mela <maurizio.la.mela@anonymised.com> wrote:

I’ve implemented a new format option for the WMS Animator named gif_disposal_method. Through this option it can be specified what to do with the previous GIF frame once a new frame is displayed. Valid values are none, doNotDispose, restoreToBackgroundColor and restoreToPrevious. The default value is none. Before, this disposal method (none) was set statically for animated gifs. Using this method, gif animations don’t hide their previous frames. In other words, new frames were just rendered on top of the previous frames. With the newly added gif_disposal_method option, for example it is possible to hide all previous frames by changing the disposal method to restoreToBackgroundColor .

All four valid option values are also listed and described in the GIF specification (23. C IV Disposal Method).

The option gif_disposal_method can be used like the other two format options parameter gif_loop_continuously and gif_frames_delay.

Example usage:

http://localhost:8080/geoserver/wms/animate?layers=topp:states,sf:restricted&format=image/gif;subtype=animated&aparam=bbox

&avalues=-180,-90,180,90,-125,25,-67,50&format_options=gif_loop_continuosly:true;gif_disposal_method:restoreToBackgroundColor

&width=640

For the implementation it was required to add and change some lines in the following files:

· src/wms/src/main/java/org/geoserver/wms/WMS.java

· src/wms/src/main/java/org/geoserver/wms/map/GIFMapResponse.java

I’ve also added a drop down box where the default disposal method can be set to the WMS admin page of the Geoserver.

Do you think we can implement this new feature into the GeoServer stable version?

Regards

Maurizio La Mela


Monitor Your Dynamic Infrastructure at Any Scale With Datadog!
Get real-time metrics from all of your servers, apps and tools
in one place.
SourceForge users - Click here to start your Free Trial of Datadog now!
http://pubads.g.doubleclick.net/gampad/clk?id=241902991&iu=/4140


Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel