MikeBramm

Working with bitmaps wider than 65535 pixels

Recommended Posts

I am able to load bitmaps that are wider than 65535 pixels, but when I try to move a selected part of the image where the selection crosses the 65535 boundary, only the portion of the image under the 65535 boundary is moved.  I also noticed that I cannot resize a bitmap larger than 65535 in either direction.  Are there any plans for adding more support for bitmaps wider than 65535 pixels?

Share this post


Link to post
Share on other sites

If you are not using the new beta build of version 4.2, try that and report back. 

Share this post


Link to post
Share on other sites

Support for this is slowly improving over time. The beta of 4.2 makes this a lot better in the areas of performance, and also by making it possible to load/save enormous images in common formats like PNG and TIFF. (JPEG still seems like it can't go that large though)

 

And yes you can open images larger than >65535 pixels on either dimension, but it's not really tested or supported yet. Internally this is just the max that things are really allowed to go up to so far, but there's no check when loading an image.

Share this post


Link to post
Share on other sites
42 minutes ago, Rick Brewster said:

And yes you can open images larger than >65535 pixels on either dimension,

 

I read that as, "In the other dimension," and wondered what you were doing.... Don't mind me.

  • Upvote 1

Share this post


Link to post
Share on other sites

I installed version 4.2 (4.200.7111.39790) and it doesn't support resizing bitmaps larger than 65535 in either direction or moving a selected area over the 65535 boundary.  I also noticed that it won't allow filling a selected area or creating any shape, line or curve across the 65535 boundary.  Hopefully support for larger bitmaps will be added in a future release as time permits.  Thanks.

Share this post


Link to post
Share on other sites

What type of images are you working with? It'd be helpful to know the sizes, and what kind of stuff you're doing. Samples images help too, if you're willing to share.

Share this post


Link to post
Share on other sites

I have converted some Windows True Type font files (*.TTF) to Windows Bitmap files (*.BMP).  The resulting bitmap fonts are for a printing system.  Once the font is converted to a bitmap, I have to edit the various characters to make sure they meet the printer's specifications, so some of the characters may need to be adjusted up/down/left/right or resized slightly so that they all line up correctly.  I've been doing this for years with paint.net and it works great, but now I have to make a font that is 1024 pixels tall, which results in the bitmap being 69707 pixels wide.  Because of the limitation of paint.net, I am unable to edit any part of the image from 65536 to 69707.

 

I tried attaching this bitmap font but the file (even zipped up) is larger than the 256 kB attachment limit.

 

Also, I save the bitmap fonts using the "Bitmap (Low color)" plugin (LowColor.dll).  I have never had any problems saving bitmaps using this plugin.  But, now that I've installed version 4.2 (4.200.7111.39790), it throws this exception when attempting to generate the preview:

image.png.33b026f4a6ea9b8a29aa05649a124db6.png

 

Application version: paint.net 4.2 (β 4.200.7111.39790)

System.ArgumentException: destination palette has 256 entries, source has 16
   at PaintDotNet.Drawing.ColorPaletteUtil.UpdatePalette(ColorPalette gdipPalette, IReadOnlyList`1 newEntries) in D:\src\pdn\src\Core\Drawing\ColorPaletteUtil.cs:line 44
   at PaintDotNet.FileType.Quantize(Surface quantizeMe, Int32 ditherAmount, Int32 maxColors, Boolean enableTransparency, ProgressEventHandler progressCallback) in D:\src\pdn\src\Data\FileType.cs:line 172
   at LowColor.LowColorFileTypeFactory.createLowColor(Surface PDNSurface, Double ImageDPIX, Double ImageDPIY, Int32 CustomCols, String colorMode, Int32 DitherLevel, Int32 TransparencyLevel, Boolean UseTransparency, ProgressEventHandler updateProgress, PropertyBasedFileType callingClass, Boolean Always8Bit)
   at LowColor.BMPSave.OnSaveT(Document input, Stream output, PropertyBasedSaveConfigToken token, Surface scratchSurface, ProgressEventHandler progressCallback)
   at PaintDotNet.FileType.Save(Document input, Stream output, SaveConfigToken token, Surface scratchSurface, ProgressEventHandler callback, Boolean rememberToken) in D:\src\pdn\src\Data\FileType.cs:line 276
   at PaintDotNet.Dialogs.SaveConfigDialog.<>c__DisplayClass48_0.<UpdatePreviewAsync>b__0() in D:\src\pdn\src\PaintDotNet\Dialogs\SaveConfigDialog.cs:line 604
   at System.Threading.Tasks.Task.Execute()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at PaintDotNet.Dialogs.SaveConfigDialog.<UpdatePreviewAsync>d__48.MoveNext() in D:\src\pdn\src\PaintDotNet\Dialogs\SaveConfigDialog.cs:line 623

Share this post


Link to post
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.

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.