Jump to content
IGNORED

Doing pictures using Super IRG 2 and other ICE modes.


Recommended Posts

There has been some improvement to the conversion algorithm.

 

Here is the new ATR: c64 viewer.atr

 

I went in and corrected the greens on the color table. Dark green is now represented by Graphics 10 green plus PF2 (grey) and light green by the same Graphics 10 green plus Pf1 (Yellow). This gets these colors closer to the C64 originals. Some of the pixel pairings with other colors may still be off.

 

Also included on this ATR is D:WRITE64D.BAS which will let you edit or make your own conversion tables. The program listing is here:

20000 RESTORE 20040:OPEN #1,8,0,"D:C64A.DAT"
20010 FOR I=0 TO 255:READ A
20020   PUT #1,A:NEXT I
20030 END
20100 REM -- COLOR 0 (BLACK) ---------
20105 DATA 0,114,65,115,35,48,128,82,17,16,67,3,113,51,131,99
20110 REM -- COLOR 1 (WHITE) ---------
20115 DATA 120,122,121,123,121,123,136,126,109,121,125,108,139,123,139,123
20120 REM -- COLOR 2 (RED) -----------
20125 DATA 68,118,69,119,39,52,132,70,66,20,71,71,100,55,135,103
20130 REM -- COLOR 3 (CYAN) -----------
20135 DATA 124,126,125,127,137,126,136,126,125,125,137,124,114,126,139,125
20140 REM -- COLOR 4 (MAGENTA) ----------
20145 DATA 76,118,45,134,37,52,132,46,46,45,46,135,135,55,135,39
20150 REM -- COLOR 5 (GREEN) ----------
20155 DATA 60,126,61,123,137,63,136,62,61,61,61,63,63,62,139,115
20160 REM -- COLOR 6 (BLUE) -----------
20165 DATA 128,130,129,130,129,130,128,130,129,129,46,131,131,51,131,130
20170 REM -- COLOR 7 (YELLOW) ---------
20175 DATA 88,123,73,123,43,56,136,90,25,24,89,104,107,59,139,91
20180 REM -- COLOR 8 (ORANGE) ---------
20185 DATA 36,103,72,119,43,52,132,22,21,20,75,100,23,55,135,23
20190 REM -- COLOR 9 (BROWN) ----------
20195 DATA 16,118,17,119,39,52,132,18,17,16,71,100,19,55,135,19
20200 REM -- COLOR 10 (PINK) ----------
20205 DATA 76,119,77,134,43,102,43,86,78,77,79,100,119,87,43,103
20210 REM -- COLOR 11 (GREY 1) --------
20215 DATA 12,99,77,115,141,60,140,98,97,97,97,15,99,55,131,99
20220 REM -- COLOR 12 (GREY 2) --------
20225 DATA 116,142,97,126,141,62,140,110,29,28,125,108,101,62,139,119
20230 REM -- COLOR 13 (LIGHT GREEN) ---
20235 DATA 56,126,57,123,57,56,56,136,57,57,93,57,59,58,139,57
20240 REM -- COLOR 14 (LIGHT BLUE) ----
20245 DATA 140,142,141,142,141,60,140,142,141,141,46,140,142,142,143,142
20250 REM -- COLOR 15 (GREY 3) --------
20255 DATA 126,109,119,45,60,136,94,29,28,109,108,119,55,165,139,111

The data is organized by 16 rows of 16 bytes starting at line 20100, one row for each color.

 

Basically, there are 256 bytes to the table, representing each of the possible two-pixel pair combinations (16 colors by 16 colors). The data is formulated using this expression:

 

(GRAPHICS 10 color) * 16 + (Graphics 12 color left pixel) * 4 + (Graphics 12 right pixel)

 

This table was formulated with these color settings:

 

color 0 (both modes) - 704 (PM0 on Graphics 10) / 712 (BAK register for Graphics 12) is black

color 1 (Graphics 10) - 705 (PM1) is orange

color 2 (Graphics 10) - 706 (PM2) is purple/magenta

color 3 (Graphics 10) - 707 (PM3) is green

color 4 (Graphics 10) / color 1 (Graphics 12) - 708 (PF0) is red

color 5 (Graphics 10) / color 2 (Graphics 12) - 709 (PF1) is yellow

color 6 (Graphics 10) / color 3 normal (Graphics 12) - 710 (PF2) is grey

color 7 (Graphics 10) / color 3 inverse (Graphics 12) - 711 (PF3) is cyan

color 8 (Graphics 10) - 712 (9th color, BAK register on Graphics 10) is blue

 

The next step is of course to formulate a table for PF3 (inverse) and an algorithm for deciding if the character is to be normal or inverse, depending on the color used. At this stage it appears that characters using light blue, light green, or teal will likely get the inverse as the PF3 color combinations used here are closest to the C64 colors.

 

It is also possible to write your own table from scratch using your own settings. To do so, load up the ICE CIN font editor and choose the ICE PCIN (or Super PCIN) mode, and use the color tuner to play around with the color settings until you get a combination of colors that are close to the C64 palette. You will then want to take a screenshot as a reference, then go to the blank C64 PCIN table a few posts up, and calculate by hand your own values for this table. You also want to save the font file (to save the color palette). The second through tenth bytes of this ICE file contain the color palette data which you can then put into lines 1200 and 1202 of the C64VIEW.TUR program (with line 1200, register 1070 is the BG and 1071 is the PCIN 9th color). The values you get from your own color table are put into the DATA statements of the WRITE64D.BAS program.

 

Here is an improved version of a previously converted picture:

 

post-23798-0-49595500-1406487434_thumb.gif C64 original

post-23798-0-87698700-1406487464_thumb.png my previous conversion with wrong green color

post-23798-0-69299300-1406487490_thumb.png Corrected render: elefli2.obx

 

Note that the helmet is now the correct color, previously it was too dark.

 

Another one:

 

post-23798-0-09901300-1406487537_thumb.png post-23798-0-67579700-1406487551_thumb.png dragon2.obx

 

The dragon looks like it should now. :)

 

I will, in the future, modify the code to display FLI pictures. Again you will notice in the first pictures, there are black hole artifacts, due to the fact that the Koala converter I used (ConGo) inserts black space whenever there are any color conflicts in converting an FLI picture (any 16 colors per char cell) into multicolor mode (you can only have 4 colors per character cell, remember). This will require 8000 bytes for the color data, all the other data tables are unchanged.

Edited by Synthpopalooza
  • Like 1
Link to comment
Share on other sites

  • 6 months later...

Thanks to some help from 1NG, I've updated the assembly code for displaying pcin pictures.

 

This method uses a new technique. Instead of full-screen flicker, the mode changes (and other register changes) happen each character line. While not as ideal as scanline changes (like in the bitmap CIN modes) this does cause the screen to pump a lot less and makes it look nicer.

 

It seems to work OK in Altirra, but I am told there is a slight messup on real hardware on the top character line.

 

post-23798-0-31705100-1424136873_thumb.png

 

PILGRIMS.zip

Edited by Synthpopalooza
  • Like 2
Link to comment
Share on other sites

More pictures ... many of them in the MIN (12+9) mode, done using this new character line interleave method.

 

An explanation: The picture swaps between two DLI's on each VBI ... each one alternates the character set and graphics mode (and COLBAK, in the case of the PCIN and Super 9 modes) every other character line. This is done in lieu of the full-frame VBI swaps done previously. The flicker has been reduced considerably, especially in the MIN mode pictures.

 

Next, I am going to experiment with having DLI color changes within the pictures themselves ... for instance, it my be possible to have a PCIN picture in which the PM registers (705-707 and BAK 9th color) can change colors each scanline, or MIN pictures which allow for DLI color changes in the PF0-PF3 registers. The DLI color changes will happen on character lines (8 scanlines). This will eat into cycles of course, so it will be tricky to do, tho not impossible! In the case of Super 9, a DLI color change on the BAK register might easily put thousands of colors onscreen at once at Graphics 9 (80 pixel) resolution. It will be a painstaking task, as the source picture will need to be processed in G2F a few character lines at a time.

 

There is also, of course, the possibility of doing these pictures in low-res (Antic 5) mode. While this will reduce the color resolution somewhat, it takes less cycles to draw an Antic 5 screen at 12 character lines, leaving more time for DLI color changes.

 

post-23798-0-00835900-1424332202_thumb.png post-23798-0-56219500-1424332231_thumb.png post-23798-0-93992500-1424332255_thumb.png

post-23798-0-65164900-1424332286_thumb.png post-23798-0-27839800-1424332307_thumb.png post-23798-0-82698400-1424332332_thumb.png

post-23798-0-48764600-1424332360_thumb.png post-23798-0-27269100-1424332378_thumb.png post-23798-0-93872600-1424332401_thumb.png

post-23798-0-06364400-1424332427_thumb.png post-23798-0-11048900-1424332516_thumb.png post-23798-0-62145700-1424332536_thumb.png

post-23798-0-32150800-1424332559_thumb.png post-23798-0-26865200-1424332592_thumb.png post-23798-0-42520000-1424332616_thumb.png

pictures.zip

Edited by Synthpopalooza
  • Like 1
Link to comment
Share on other sites

Here is a palette test using Super 9, combined with DLI color changes:

 

post-23798-0-43112800-1424397763_thumb.png s9test.obx

 

What I did here, was take the previous Boba Fett picture, and did some stepping of the hues in both DLI's, as a palette test. There are two DLI's on COLBAK, and each individual character line is a mixture of two COLBAK settings.

 

A further explanation can be seen by looking at a sample Super 9 palette from ICE GTIA editor:

 

post-23798-0-65365500-1424397786_thumb.png

 

In this mode you get a duo-tone 256 color palette made by swapping COLBAK between two settings. By itself, you can get some nice gradients. But let's see what happens when you step one of the COLBAK settings forward by about 3 hues ...

 

post-23798-0-95292500-1424397803_thumb.png

 

You get a completely different palette. By only changing COLBAK, you affect the entire range of colors in this mode.

 

So in the palette test above, each character line has a unique color palette with 256 colors usable per character line. There are about 136 unique color palettes to be had from this mode. Judicious use of this technique can potentially increase the quality and color resolution of photographic quality pictures, and is best suited for landscapes, and any picture which relies on vertical color gradients.

 

Here is another palette test, along with the source code:

 

post-23798-0-55017700-1424398302_thumb.png lattice test super 9.obx lattice test super 9.asm

 

The key section of code is in the colbaktab table:

colbaktab
	dta $10,$40
	dta $50,$10
	dta $10,$60
	dta $70,$10
	dta $10,$80
	dta $90,$10
	dta $10,$10
	dta $20,$80
	dta $90,$20
	dta $20,$a0
	dta $b0,$20
	dta $20,$c0
	
	dta $d0,$20
	dta $20,$e0
	dta $f0,$20
	dta $30,$00
	dta $10,$30
	dta $30,$20
	dta $30,$30
	dta $30,$40
	dta $50,$30
	dta $30,$60
	dta $70,$30
	dta $30,$80

Firstly, the setting is hue only, so only values like $00 to $f0 which are evenly divisible by 16 can be used. Secondly, as the DLI display alternates with the color table, the setting in each row is screen 1 - screen 2, followed by screen 2 - screen 1. The colbak instances change with each character line. You can try plugging your own values into this table to test this yourself.

 

This section:

org BUF1
	ins "slave9b.scr",+0,960
	org BUF2
	ins "slave9r.scr",+0,960

        org FONT-4
        jmp startup
        nop
	org FONT
	ins "slave9b.fnt",+0,8192
	org FONT2
	ins "slave9r.fnt",+0,8192

... requires that you have fnt and screen files generated by Graph2font. You want "Standard" (no optimization) settings, and you will do two renders of the same picture, one set to greyscale, and one not greyscale. The code uses these files to build the display.

 

The next step is to try this out on a converted picture. :)

Edited by Synthpopalooza
  • Like 1
Link to comment
Share on other sites

As promised, my first super 9 picture using DLI's.

 

Here is the original picture:

 

post-23798-0-15107200-1424411626_thumb.jpg

 

The first step is to resize this picture to 320x192 in your favorite photo editor. Save as .png.

 

Next, open up two instances of G2F and load into both, using Graphics 9. Set one as greyscale, leave the other unticked. You should then get these two images:

 

post-23798-0-03527400-1424411832_thumb.png color render

 

post-23798-0-85826800-1424411853_thumb.png greyscale render

 

You will notice these images differ slightly, the color render has more brightness in some areas (like the sun), while the greyscale render has a brighter sky. You will need to take these differences into account when selecting your two blended BAK colors for each character line later.

 

Make sure to do "Options-Standard", then save the G2F's (I chose lsuns9c for the color, and lsuns9g for the greyscale). Now hit the "Save All" button and you will have font and scr files for both.

 

Here is the source code for the super 9 DLI pic:

 

landscape sunset super 9.asm

 

In the code, look at the beginning, you will see where the font and scr files should go:

org BUF1
	ins "lsuns9c.scr",+0,960
	org BUF2
	ins "lsuns9g.scr",+0,960

        org FONT-4
        jmp startup
        nop
	org FONT
	ins "lsuns9c.fnt",+0,8192
	org FONT2
	ins "lsuns9g.fnt",+0,8192

Now look for the COLBAKTAB, the table of values for COLBAK

colbaktab

    ; screen 1:  font 1, font 2
	dta $80,$40
	dta $80,$40
	dta $80,$40
	dta $80,$30
	dta $80,$20
	dta $80,$20
	dta $90,$20
	dta $90,$20
	dta $90,$20
	dta $90,$20
	dta $90,$20
	dta $90,$20
	
	;screen 2: font 2, font 1
	
	dta $40,$80
	dta $40,$80
	dta $40,$80
	dta $30,$80
	dta $20,$80
	dta $20,$90
	dta $20,$90
	dta $20,$90
	dta $20,$90
	dta $20,$90
	dta $20,$90
	dta $20,$90

You will notice the data is divided into two screens. Screen one has the color render COLBAK setting, alternated with the greyscale setting. Screen two, reverses this order.

 

In the original picture, you want to take a character line at a time, figure out the two dominant colors for that area of the picture, and plug the closest Atari values into the table. You will notice that the sun is bright in one area of the color render, so for that area of the table, you want gold. You will notice that I started with violet-red ($80,$40 COLBAK), then did a gradation to violet-gold ($80,$30 then $80,$20) where the sun is. At the water line, the gradation turns suddenly to blue-gold ($90,$20)

 

Once you have the colors the way you want them, compile the .asm ... this may take some trial and error until you get the results you want:

 

post-23798-0-94787300-1424412429_thumb.png landscape sunset super 9.obx

 

For best results turn down the brightness and turn up the contrast on your monitor.

 

An ideal automation would be a means to scan each character line of the picture and generate optimal COLBAK values based on the two dominant colors in that line.

 

Here are the G2F and source files used in this render:

 

landscape sunset source files.zip

 

Feel free to try your own pictures with this code ... :)

 

It is of interest to note, that it is possible to add the missiles (M0-M3) all set to PF3 to the mix. Graphics 9 will show through as their color, and adding in changes to PF3 as well as BAK, can increase the color resolution to 2 256-color palettes per character line. Throwing in HPOSM0-HPOSM3 changes into the DLI will increase the number of palettes per scanline to 4. Of course this will eat more cycles, and bears further experimentation. :)

Edited by Synthpopalooza
  • Like 2
Link to comment
Share on other sites

Two more Super 9 DLI examples, with xex and source code.

 

post-23798-0-32866400-1424465141_thumb.png landscape yard - super 9 dli.asm landscape yard - super 9 dli.obx

 

post-23798-0-16963900-1424465151_thumb.png lake landscape - super 9 dli.asm lake landscape - super 9 dli.obx

 

I've had to calculate the color settings by hand, with a lot of trial and error, although with the lake picture, I did some gradation of the color settings, first on one half of the display, and then on the other. This makes for some very subtle color gradients and is a nice way to blend the picture.

 

What's optimally needed here, is a means to scan each character line of the original picture and determine the optimal two BAK color settings for each line of the display.

 

This mode would be perfect for graphic adventure games, or a Myst-type game.

  • Like 2
Link to comment
Share on other sites

  • 2 weeks later...

Rest in peace, Leonard Nimoy (Spock) ...

 

post-23798-0-65506800-1425252888_thumb.jpg

 

I did two PCIN renders of Mirror Spock. In both cases, I used a Graphics 10 render sourced from GIMP and reduced to 9 colors.

 

On the first one, I did a .g2f render of Antic 4 and chose the best suitable colors. On the second, I did an Antic 4 render sourced from GIMP and reduced to 5 colors. Each one has it's own strengths and weaknesses. The first render has less flickering, the second has more detail. Which one is better?

 

I also did a MIN render of Spock, using a Graphics 9 render off of g2f, and the second Graphics 12 render. The greyscale detail is greater, although with more flicker and fewer chroma detail.

 

post-23798-0-30463300-1425252853_thumb.png spock1-pcin.obx

 

post-23798-0-51934400-1425252872_thumb.png spock2-pcin.obx

 

post-23798-0-74500900-1425253984_thumb.png spock - min.obx

  • Like 1
Link to comment
Share on other sites

  • 8 months later...

A cross-post, from the Rastaconverter thread ...

 

This picture was posted as a challenge for someone to render in the Rastaconverter mode:

 

post-23798-0-53807700-1447820684_thumb.jpg

 

This was the result:

 

post-23798-0-23269400-1447820732_thumb.png

 

Basically Rastaconverter works by using PMG's atop of Antic E (Graphics 15) and changing color registers on the fly, and combining this with priority blending. One can get about 20-50 colors in this mode. However, the render of the above picture suffers from the fact that dark gradients don't translate well into 8 greyscale.

 

I decided to try to render this picture in the ICE Super 9 DLI mode. This mode is an interlaced Graphics 9 in text mode, with DLI color changes. By swapping two DLI color tables, you get basically any of 136 unique 256 color palettes usable per 8 scanlines (or one character row).

 

This was the result:

 

post-23798-0-39131100-1447820761_thumb.png underworld - super 9 dli.obx

 

Easy to render, the top of the picture has the light blue-teal highlight, blended with an orange on the other side of the color wheel. The fire parts of the render, reverse these colors. For best results, turn down the brightness and turn up the contrast on your monitor.

Link to comment
Share on other sites

And another picture from the Rasta thread ...

 

post-23798-0-15592500-1447895357_thumb.png

 

This picture seems really suited to MIN (12+9) mode, because of the low number of chromas in the picture and the reliance on shades. I took the picture into GIMP, resized it to a 160x200x5 color picture with dithering.

 

I also did a PCIN (12+10) rendering, for comparison. The Graphics 10 render did not turn out as well as I would have liked.

 

post-23798-0-85915900-1447895470_thumb.png horses - min.obx

 

post-23798-0-17020400-1447895486_thumb.png horses-pcin.obx

Link to comment
Share on other sites

And hew are a few extra pictures from the Rasta thread ...

 

post-23798-0-48093100-1447974541_thumb.png snowman-pcin.obx

 

post-23798-0-89649400-1447974556_thumb.png snow-pcin.obx

 

post-23798-0-03447500-1447974574_thumb.png snow-pcin2.obx

 

post-23798-0-32356300-1447974595_thumb.png sweden - min.obx

 

post-23798-0-32199500-1447974617_thumb.png sweden-pcin.obx

 

The snowman picture features a graphics 10 render from GIMP.

 

The first snow cabin picture featured a graphics 10 render from GIMP, for the second one I used a G10 render from Atari Interlace Studio, it shows up the green on the tree better.

 

I did a MIN (12+9) and PCIN (12+10) render on the swedish picture. With the PCIN one, I used Atari Interlace Studio again.

Link to comment
Share on other sites

Link to comment
Share on other sites

And now, for a three-way comparison ... this picture was also lifted from the Rasta thread:

 

post-23798-0-91795800-1447987925_thumb.png

 

I have done a comparison between three modes: MIN (9+12), PCIN (10+12), and HIP (9+10)

 

MIN has a very good color resolution, although it does flicker.

 

PCIN has lower color resolution, but less flicker

 

HIP has the highest color resolution, but is blurry due to the shifted HIP effect, and it flickers a little more than either of the two above.

 

Which one looks best? You decide. :)

 

post-23798-0-70815300-1447987873_thumb.png tut - min.obx

 

post-23798-0-40906700-1447987912_thumb.png tut - pcin.obx

 

post-23798-0-59315000-1447987882_thumb.png tut - hip.obx

 

An additional note about HIP and MIN: One could also shift the BAK register on each scanline, to introduce additional colors to the Graphics 9 render, as with the Super 9 DLI mode. This bears further experimentation.

Link to comment
Share on other sites

  • 1 month later...
  • 4 weeks later...

Two more david bowie pictures, in PCIN mode.

 

In these, I resized the original pictures and took them into G2F to get the Graphics 12 renders. To get the Graphics 10 renders, I took these into GIMP, posterized it to the Atari palette, then reduced each picture to 9 colors. Then in G2F, rearranging the color palette in Graphics 10 so that the BAK and PF colors are the same.

 

post-23798-0-24892600-1453087851_thumb.png jareth-pcin.obx

 

post-23798-0-68245800-1453087875_thumb.png bowie43-pcin.obx

  • Like 1
Link to comment
Share on other sites

  • 3 months later...

Visiting this thread again ... I just saw a nice little GIF animation on Facebook:

 

https://mir-s3-cdn-cf.behance.net/project_modules/disp/6f0ba123694237.563273de19be2.gif

 

I had a thought ... this animation could be done on the ATARI, using the ICE PCIN mode which would be perfect for displaying these colors. I am going to do some experimentation in the next week or so to see if it can be done.

  • Like 1
Link to comment
Share on other sites

OK, I exploded the GIF ... it uses 48 frames, and the picture itself resizes to 320x170, or about 7 ICE fonts needed per frame (uncompressed). So each uncompressed frame will take up about 14K. The total animation, uncompressed, will be 688K.

 

There may be ways to reduce this usage. If we go with narrow mode, the picture becomes 256x136, which only requires about 4 font sets per frame uncompressed. This leads to 8K per screen, and 384K for the entire animation.

 

One could also further reduce this by using Antic 5 mode ... 2 font sets per screen (4K) which means the entire animation will fit into 192K RAM. The picture below shows a simulated Antic 5 resolution ... in PCIN the colors should look fairly close to what you have here:

 

 

 

 

And of course, if we used character set optimization that might reduce things even further. I will next try rendering a PCIN file for one of the frames, in high res Antic 4, narrow mode Antic 4, and narrow mode Antic 5, to give an idea of what we have to work with here.

post-23798-0-68727300-1462850664_thumb.png

  • Like 1
Link to comment
Share on other sites

  • 10 months later...

Other developments:

 

Inspired by the new Sophia GTIA upgrade which allows true 16 level shading in all ANTIC modes and an independently programmable PF1 color in Graphics 0, I am updating the ICE font editors to support this.

 

Another advantage of SOPHIA is that Graphics 10 now lines up with other modes. While pictures that rely on HIP techniques will no longer work, PCI mide (12+10) is now easier to implement with no need to shift the pixels.

 

Lastly my friend Bill Kendrick has written me some Action! code that shifts 8 fonts on the screen at once. I plan on using this to write viewers and art programs for the ICE modes. More as it happens.

Edited by Synthpopalooza
  • Like 1
Link to comment
Share on other sites

OK, I exploded the GIF ... it uses 48 frames, and the picture itself resizes to 320x170, or about 7 ICE fonts needed per frame (uncompressed). So each uncompressed frame will take up about 14K. The total animation, uncompressed, will be 688K.

 

There may be ways to reduce this usage. If we go with narrow mode, the picture becomes 256x136, which only requires about 4 font sets per frame uncompressed. This leads to 8K per screen, and 384K for the entire animation.

 

One could also further reduce this by using Antic 5 mode ... 2 font sets per screen (4K) which means the entire animation will fit into 192K RAM. The picture below shows a simulated Antic 5 resolution ... in PCIN the colors should look fairly close to what you have here:

 

attachicon.gifmustang resized Antic 5.png

 

 

And of course, if we used character set optimization that might reduce things even further. I will next try rendering a PCIN file for one of the frames, in high res Antic 4, narrow mode Antic 4, and narrow mode Antic 5, to give an idea of what we have to work with here.

 

Well,

 

I did a simple TIP animation of this some months ago. I had to reduce the number of frames and errrm, the TIP resolution is very low, so stay away approx. 2-3 meters from your A8 screen when viewing this animation. (I do not like the created output very much, but it works on 64k machines.)

LILAC.zip

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...