A list of features for the bitmap editor:
Write Bitmap - *.bmp (1-bpp,4-bpp,8-bpp,24-bpp)
Write Icon - *.ico (1-bpp,4-bpp,8-bpp,24-bpp,multiple image icon)
Write Cursor - *.cur (1-bpp,4-bpp,8-bpp,24-bpp)
Write Icon Library - *.icl
Write Animated Cursor - *.ani
Write JPEG - *.jpg (Baseline sequential and Progressive)
Write GIF - *.gif (Transparent,Interlaced,and animated)
Write PNG - *.png (Transparent,Interlaced,and Alpha)
Write PCX - *.pcx
Write TIF - *.tif (multiple page tif)
Read *.ani,*.bmp,*.cur,*.icl,*.ico,*.gif,*.jpg,*.pcx,*.png, and *.tif
SlideShow
AntiAliasing
Blend
Grid
Copy
Paste - toggle transparency
CopyTo
PasteFrom
Zoom (6.25%,12.5%,25%,50%,100%,200%,400%,800%,1600%, and Best Fit)
Flip horizontal and vertical
Rotate any angle
Resize Lanczos 3 filter
3D Button
Blinds
Color Keep
Edge Detection
Ellipse
Emboss
GreyScale
Heart
Hectagon
Histogram
Kaleidoscope
Mirror
Negative
Octagon
Pentagon
Pixelize
Scatter
Sepia
Sharpen
Sketch
Skew
Smooth
Solarize
Swirl
Taper
Tile
Tunnel
Visions
Water
Weave
Color Adjustments - Brightness, Red-Bightness, Green-Brightness,Blue-Brightness,Contrast,Saturation,Hue,Gamma
Color Depth
Color Switch
Select
FreeForm Select
Pick Color
Fill Color
Shadow
HotSpot
Line
Dashed Line
Gradient Line
Arc
Ellipse
Polygon
Triangle
Rectangle
Pentagon
Hexagon
Octagon
Polygon
Rounded Rectangle
Egg
Star
Hatched Brushes
Gradient Brushes
Pie
Red-Eye Remover
Text - toggle transparency
Bezier Curve
Brushes
Spray
Allow user to select background color
Extract images from multiple image files
3D
Minimum Resolution 1024 X 768
To do list:
Whatever else comes to mind ::)
The program is attached.
Comments welcome.
Regards,
Darrel
Edit: The transparent color for the .gif and .png files is the top left hand corner pixel. The transparent color for icons and cursors is the current background color on the palette.
[attachment deleted by admin]
Darrel, good work. I find it very useful!
I can't understand: ABitmapEditor work with 32-bit bitmap without support alpha channel or support it.
And I think that color of free space (without bitmap) must be COLOR_APPWORKSPACE or user can have the way to chose it free.
KSS,
Thanks for the encouraging reply.
Quote from: KSS on July 18, 2006, 01:19:20 AM
I can't understand: ABitmapEditor work with 32-bit bitmap without support alpha channel or support it.
Sounds like something useful for me to add.
Quote from: KSS on July 18, 2006, 01:19:20 AM
And I think that color of free space (without bitmap) must be COLOR_APPWORKSPACE or user can have the way to chose it free.
The background color is COLOR_BACKGROUND, which the user has complete control over.
Regards,
Darrel
Darrel,
Congratulations, very nice work :U
Another very usefull tool for my toolbox :U
Nice work Darrel! :U
Darrel,
QuoteThe background color is COLOR_BACKGROUND, which the user has complete control over.
Ok, I am understand. But, please add support for chose what system's color used as background color (If you have time). This is very useful for me.
And (if you want) add support for lang-pack. (I like English, but my native language is more useful for me :bg)
And thank You for your work! Really great! :clap:
KSS,
You can go to Display Properties and set the background color. It's the color you choose for your desktop if you have no wallpaper.
Language issues are farther down the road.
Regards,
Darrel
Darrel,
I known how chanke bgcolor of desktop and I not use bg image.
Every time when I need change color (bitmap-editor free space) I must change windows settings??? :dazzled:
As it stands right now, the Registry is not used. If for some reason I have to use the Registry, I'll consider addding the option to set the background color. I may eventually do it anyway.
Regards,
Darrel
Updated the features and to do list, along with updated version of program.
Regards,
Darrel
very good work! very usefull :U
Added PNG support. Fixed the bugs in the multiple image file display.
Regards,
Darrel
Nice work Darrel! :clap:
Thanks,
A few minor adjustments: No longer saves 32-bpp *.bmps. Allow User to select background color.
Changed a few things which introduced a few bad things. Bad things are fixed.
Regards,
Darrel
Darrel, i would suggest you to put a "Author" menu item just so we could remember that it was you who made it.
Fixed another bad thing (Extract Files from animated *.gif).
I guess I can but an About Menu Item an later.
You can check the properties version info for now ( My name is there) :8)
Regards,
Darrel
Added a skew option & adjustable color depth.
Regards,
Darrel
Made the interface of creating multiple image files more user-friendly.
Regards,
Darrel
Fixed the problems associated with a color depth <= 256.
Regards,
Darrel
This is wonderful!
Thanks Darrel
Thanks Darrel, at last an editor that does GIF and ICO files. Currently, I have been doing this using two separate programs. I wonder if you would be willing to add some associations? CTRL+Z for UNDO for example. And how about a REDO function? You would just walk the UNDO chain in reverse.
Paul
Paul,
I assume you're talking about accelerator keys and yes I plan on adding them.
I'm glad to hear people are finding it useful.
I'm currerntly working on a problem with the *.png writer.
Regards,
Darrel
HELLO,Darrel
[image]-->[Resize]
1. zoom out or zoom in the bitmap;
2. zoom out or zoom in the region, no the bitmap.(look at mspaint.exe)
hi Darrel
Outstanding program well done
Re: the magnify request, imho i think a better idea there would be a 'seperate' magnify window where you just zoom what ever is under the cursor. Ive always prefered this method since you dont have to keep zooming in and out to see the overall effect on the image. Also i think this would be ALOT easier to implement.
Keep up the good work.
I wouldn't be suprised if the source code requests start rolling in ... Its a damn nice program. :U
Quote from: six_L on October 06, 2006, 07:01:16 AM
HELLO,Darrel
[image]-->[Resize]
1. zoom out or zoom in the bitmap;
2. zoom out or zoom in the region, no the bitmap.(look at mspaint.exe)
six_L,
I'm not sure I understand your point. You can set the Zoom (does not change bitmap) to 100%, 200%, 400%, or 800%. Resize (changes the bitmap) stretches or shrinks the entire bitmap or a selected region (could be bitmap pasted from the clipboard or a file).
Quote from: asmrixstar on October 06, 2006, 08:29:56 AM
Re: the magnify request, imho i think a better idea there would be a 'seperate' magnify window where you just zoom what ever is under the cursor.
asmrixstar,
I am thinking about adding a small thumbnail view window of what is under the cursor. This could be modified to enable a Zoom of the thumbnail view. Thanks for the suggestion.
Regards,
Darrel :8)
Darrel,
the mspaint.jpg is the effect after the original bitmap was resized in mspaint.exe.
the BitmapEditor.jpg is the effect after the original bitmap was resized in your ABitmapEditor.exe.
;-----------------------------
another :
the textinput can't work.
[attachment deleted by admin]
six_L,
Correct me if I'm wrong. The mspaint.jpg you changed the "attributes" of the original picture. The BitmapEditor.jpg you "resized" the original picture. In my program Resize is the same as Stretch in mspaint and Attributes is the same as Attributes.
For text input the Zoom level must be 100%. Select the Text Input Button, then draw a rectangle where you want to place text. Click on this rectangle and then type in your text. I may modify my program in the future so the text rectangle automatically recieves the focus.
Please let me know if we are on the same page now.
Regards,
Darrel
Helllo,Darrel
you'r right. :U
all functions work fine. :U
Thanks you.
I'm glad to see my program being compared to mspaint. It is designed to be similar to mspaint (for an easy transition). I originally was making a screensaver and wanted a rotating emblem, so I wrote a few functions in VB mainly to rotate an image to any given angle. Then when I came across asm I eventually decided to combine my functions and make a bitmap editor. My goal is to make something that will compete with PaintShopPro. I don't have PaintShopPro so I don't know what this entails. Hopefully when I get OpenGL incorporated it will rise to this level.
BTW: Double Click the text rectangle to select the font.
Regards,
Darrel :8)
You can download a trial version of PSP from here (http://www.jasc.com).
Paul
Fixed the *.png and *.jpg writers. Added Accelerators.
Regards,
Darrel :8)
Quote from: PBrennick on October 04, 2006, 09:56:27 PM
And how about a REDO function? You would just walk the UNDO chain in reverse.
Paul,
The Repeat function does this.
Regards,
Darrel :8)
Excellent, I love this program.
Paul
QuoteABITMAPEDITOR caused an invalid page fault in
module KERNEL32.DLL at 018f:bff73641.
Registers:
EAX=00000000 CS=018f EIP=bff73641 EFLGS=00010246
EBX=f73c0065 SS=0197 ESP=f6f00000 EBP=0065f708
ECX=00000000 DS=0197 ESI=87600000 FS=803f
EDX=17570000 ES=0197 EDI=f6f00000 GS=0000
Bytes at CS:EIP:
5f 5e c9 c2 0c 00 52 51 33 c0 48 50 50 65 ff 32
Stack dump:
This is a very reproducable error in my Win98 System. It happens whenever I open the 'Edit' menu, whether by clicking on it or scrolling through from the neighbouring menus as you do...
Also, on the File Menu, the Open and Save As both have one of those unknown character blocks at the end. And File->New isn't even there...
So some problems then. Life is hard. E-mail me for more info if you like.
Quote from: TheGreatJason on October 13, 2006, 10:57:20 PM
QuoteABITMAPEDITOR caused an invalid page fault in
module KERNEL32.DLL at 018f:bff73641.
Registers:
EAX=00000000 CS=018f EIP=bff73641 EFLGS=00010246
EBX=f73c0065 SS=0197 ESP=f6f00000 EBP=0065f708
ECX=00000000 DS=0197 ESI=87600000 FS=803f
EDX=17570000 ES=0197 EDI=f6f00000 GS=0000
Bytes at CS:EIP:
5f 5e c9 c2 0c 00 52 51 33 c0 48 50 50 65 ff 32
Stack dump:
This is a very reproducable error in my Win98 System. It happens whenever I open the 'Edit' menu, whether by clicking on it or scrolling through from the neighbouring menus as you do...
Also, on the File Menu, the Open and Save As both have one of those unknown character blocks at the end. And File->New isn't even there...
So some problems then. Life is hard. E-mail me for more info if you like.
I just tested the program on Win '95 and had the same problem. The Accelerator keys for the Edit Menu will not work either.
Can put 3 .'s in place of the unknown character for Win '95 and '98. Just haven't got around to doing the New function yet.
Will had a note to the first post that my program does not work on Win '95 or '98.
Thanks for letting me know about this problem. Don't know when I will ever have time to check and see why it is uncapatible with Win '95 and Win '98
Regards,
Darrel :8)
I will try piecing the program back together in steps this weekend and see if I can find a solution.
Added New File Option. Now works on Win '95 and I assume Win '98.
Regards,
Darrel :8)
Added Thumbnail View. Fixed a problem with combination of Zoom level other than 100% and pasting. Plus a few minor adjustments.
Regards,
Darrel :8)
Edit: Fixed a problem associated with the New File option.
Darrel,
This is really turning into something special. Keep up the good work!
Paul
Your project has been promoted to 'Only working multi-image icon editing freeware application on my PC'!! :U (At least, it's free now. I don't know what you have planned for the future...)
It's totally clutter free on screen and I love that.
Once you have fully achieved the main functions of MSPaint and ImagEdit you should set your aims higher. Take for example this program called Icon Craft (http://www.iconempire.com/iconcraft/) I found (just a trial version, but it is useful for those 7 files of which I have used 1 and used the export option instead from then on...) Download the trial version and compare it. Only real difference is that there are many more colour/imaging effects and they made a huge palette on the side for many colours and huge icons to go with it. Oh and the transparency thing might be quite important too... And the big pixel grid to work in is useful sometimes but not absolutely necessary.
There are a few noticable problems with yours at the moment though. Main one for me is how it handles the multiple image icons. Not that it handles them very much at all yet... You see when you open a multi-image icon they all appear on the side. That's great! Exactly what we want it to do. To change onto one you have to double-click on it. Single-click would be better I think... No big problem there though. But if you edit one of them and then change to another, all the edits you have made suddenly disappear on the icon size you were editing...??? And if you try to save the file itself to stop this happening, you find that only the image that was selected is saved, by its poor little self. We want the whole collection to be saved.
Other noticable problems: when you move the paintbrush around the highlighted pixel to edit lags WAY behind the pointer (my PC is slow so it picks up program performance problems really well...). I had a similar problem doing something like this in VB with a moving object, and I did find a solution, but I'll have to look back to remember it. I think it has something to do with how the window behind it is redrawn... In fact, if I remember correctly, the fact that there was heavy drawing going on in the cycle and not just a plain background was the main reason it suddenly went slow. I'll get back to you on it. Also, when you move the paintbrush off the image, the pixel just stays there. Oh, and that giving the textbox focus thing still hasn't happened yet.
Anyway, excellent work so far, and I hope I haven't been too critical of it. That's just the way I work... :toothy I hope you will continue to develop this software, and if it gets much better I might stop using that silly shareware application. How much time have you spent on it so far?
Darrel,
I already gave you a link to PSP which I have used a lot over the past few years. Another one worth looking at is Pixel Editor (http://www.iconempire.com/pixel-editor/index.htm). The nice thing about this program is it accelerates the development of buttons, etc. for webpages.
Paul
Quote from: Lowly J on October 26, 2006, 10:34:57 PM
And the big pixel grid to work in is useful sometimes but not absolutely necessary.
Would a Zoom of 1600% suffice and/or do we want an actual grid?
Quote from: Lowly J on October 26, 2006, 10:34:57 PM
There are a few noticable problems with yours at the moment though. Main one for me is how it handles the multiple image icons. Not that it handles them very much at all yet... You see when you open a multi-image icon they all appear on the side. That's great! Exactly what we want it to do. To change onto one you have to double-click on it. Single-click would be better I think... No big problem there though. But if you edit one of them and then change to another, all the edits you have made suddenly disappear on the icon size you were editing...??? And if you try to save the file itself to stop this happening, you find that only the image that was selected is saved, by its poor little self. We want the whole collection to be saved.
Sometimes when we grab the mouse, we unintentionally click it, this is why I made the change to take place on a double-click.
Do we want to automatically save changes to an image of a multiple image file, when we select another image or do we want to express our disire to save the changes? Do we want to be able to save a multiple image file under another name or overwite the existing file? Is it okay if we are limited to changing the pixel data (Not be able to change size or color depth.) of an image in a multiple image file?
Quote from: Lowly J on October 26, 2006, 10:34:57 PM
Other noticable problems: when you move the paintbrush around the highlighted pixel to edit lags WAY behind the pointer (my PC is slow so it picks up program performance problems really well...).
Does a selected portion of the bitmap or pasted bitmap with transparency lag as bad when you move it around the surface of the main bitmap?
Quote from: Lowly J on October 26, 2006, 10:34:57 PM
Also, when you move the paintbrush off the image, the pixel just stays there.
Microsoft's Paint program does the same thing if you have another window partially covering it. I will work on a fix tho.
Quote from: Lowly J on October 26, 2006, 10:34:57 PM
Oh, and that giving the textbox focus thing still hasn't happened yet.
It has now.
Quote from: Lowly J on October 26, 2006, 10:34:57 PM
I hope I haven't been too critical of it.
Praise-Critique-Praise: What's not to like? I thought you framed the critique quite nicely.
Quote from: Lowly J on October 26, 2006, 10:34:57 PM
How much time have you spent on it so far?
Don't know how much time I have invested. Been working on it a Year and a half, off and on.
Regards,
Darrel :8)
Good job :U You almost successfully reverse engineered all the features mighty mspaint had and added many new & good ones. However, you cannot get professional results using just GDI, all the good stuff: anti aliasing (when you want really round circle) gradients; comes with GDI+ unless you want reinvent wheels
When i open any file and modify it.. then when i close app, it does not ask u to save changes user made, also when u open new file or create new file.
BUG!!.
Otherways good work.
Bug?
Or the feature hasn't been implemented yet? :P
Quote from: ramguru on October 28, 2006, 08:11:55 AMYou almost successfully reverse engineered all the features mighty mspaint had
I'm not certain I understand what you mean by reverse engineering. If you mean disassemble and/or look at the machine code in some manner, then no, it is not reverse engineered.
Thanks for pointing out GDI+.
Quote from: BytePtr on October 28, 2006, 10:38:22 AM
When i open any file and modify it.. then when i close app, it does not ask u to save changes user made, also when u open new file or create new file.
Just hasn't been done yet. I have just recently considered adding this option and will do so hopefully in the near future.
Regards,
Darrel :8)
Quote from: Darrel on October 28, 2006, 01:02:28 PM
I'm not certain I understand what you mean by reverse engineering. If you mean disassemble and/or look at the machine code in some manner, then no, it is not reverse engineered.
Definitely not that meaning, it's a process of analysis of an object in order to make your object work that way :wink
Quote from: ramguru on October 28, 2006, 01:10:52 PM
Definitely not that meaning, it's a process of analysis of an object in order to make your object work that way :wink
OK, yes I designed it to have the look and feel of paint because I do like paint's layout it just doesn't do enough for me.
Regards,
Darrel :8)
Program now prompts the user if they want to save changes to bitmap.
Regards,
Darrel :8)
Quote from: Darrel on October 27, 2006, 10:57:07 PM
Quote from: Lowly J on October 26, 2006, 10:34:57 PM
And the big pixel grid to work in is useful sometimes but not absolutely necessary.
Would a Zoom of 1600% suffice and/or do we want an actual grid?
How about both! :bg Also, I would like to see Custom zooming and Auto zooming as well (scale it up as big as possible to fit on the screen).
Quote from: Darrel on October 27, 2006, 10:57:07 PM
Quote from: Lowly J on October 26, 2006, 10:34:57 PM
There are a few noticable problems with yours at the moment though. Main one for me is how it handles the multiple image icons. Not that it handles them very much at all yet... You see when you open a multi-image icon they all appear on the side. That's great! Exactly what we want it to do. To change onto one you have to double-click on it. Single-click would be better I think... No big problem there though. But if you edit one of them and then change to another, all the edits you have made suddenly disappear on the icon size you were editing...??? And if you try to save the file itself to stop this happening, you find that only the image that was selected is saved, by its poor little self. We want the whole collection to be saved.
Sometimes when we grab the mouse, we unintentionally click it, this is why I made the change to take place on a double-click.
Nah, if we can get it so you don't lose edits when you change images, and the collection is treated as a collection and not just a list of images to open, then accidental image switching is no longer important, and you don't need to prompt for changes either on switching images (so don't implement that).
Quote from: Darrel on October 27, 2006, 10:57:07 PM
Do we want to automatically save changes to an image of a multiple image file, when we select another image or do we want to express our disire to save the changes?
We
don't want to save any changes when we select another image. We simply want it to be retained in memory so if we switch back to that image the changes will still be there (and shown in the list of images on the side). In fact you seem to have removed the preview in the multiple images thing for now. I can understand why, but it will be changed back when things are working...
Quote from: Darrel on October 27, 2006, 10:57:07 PM
Do we want to be able to save a multiple image file under another name or overwite the existing file?
Doesn't that relate to Save/Save As? I suppose we could add a 'Save Single Image' Option if you wanted to just save one image out of it.
Quote from: Darrel on October 27, 2006, 10:57:07 PM
Is it okay if we are limited to changing the pixel data (Not be able to change size or color depth.) of an image in a multiple image file?
When you're designing icons the size certainly doesn't change in a single icon, and I don't suppose there's any need to support changes in the colour depth either. So that's one useless feature that we don't need to add!
Quote from: Darrel on October 27, 2006, 10:57:07 PM
Quote from: Lowly J on October 26, 2006, 10:34:57 PM
Other noticable problems: when you move the paintbrush around the highlighted pixel to edit lags WAY behind the pointer (my PC is slow so it picks up program performance problems really well...).
Does a selected portion of the bitmap or pasted bitmap with transparency lag as bad when you move it around the surface of the main bitmap?
Now that's really interesting! :eek OK, I was experimenting with the diagonal line paintbrush (5x5 pixel size one) and copying it with and without transparency in 800x zoom. (Turns out that the higher the zoom factor is the worse the performance) The copied version of the 5x5 bitmap containing the shape had almost no lag at all. The paintbrush version of the shape did have lag. If you moved it around quickly you could see big gaps between them. The transparent version of the bitmap had abysmal drawing problems. It takes up to 2 seconds just to move it to a different position. There's something seriously wrong with this part of the program and you'll have to review it. By the way, in MSPaint, at the same zoom level, NONE of these operations have ANY lag.
Too bad we can't just 'reverse engineer' Paint in the actual sense and see what algorithm they have used... :bdg
Quote from: Darrel on October 27, 2006, 10:57:07 PM
Quote from: Lowly J on October 26, 2006, 10:34:57 PM
Also, when you move the paintbrush off the image, the pixel just stays there.
Microsoft's Paint program does the same thing if you have another window partially covering it. I will work on a fix tho.
Very true (although the only window I usually have over the others is my WinTV 2000). It would be quite nice if we could fix that one somehow... Best way I can think of is to remove the paint whenever a mousemove event is received outside the drawing editor, and also include a periodical test running constantly in the program (maybe once every second) for last mousemove and where the pointer is now, and if it's not the same place then remove that paint! In VB you can use a Timer Object to run that testing code, but I have no idea if there is a similar set up for assembly or you have to do it differently. (I'm guessing the second option...)
OK, the text inserting works properly now! Now then, can it be done so that you don't have to be in 100x zoom? Consider double-buffering or any other technique you can think of...
Quote from: Darrel on October 27, 2006, 10:57:07 PM
Don't know how much time I have invested. Been working on it a Year and a half, off and on.
:clap: Usually when I go off, I find it hard to get back on. Quite annoying really. Well done to you.
Jason :toothy
Hi Darrel,
I downloaded and had a quick play with the app and it looks good for this stage of development. I regularly use Paintbrush for 16 colour images so your did have a familiar feel to it. Something that waould be a nice add in is a pallette with more choices than the pbrush style one that you are currently using. A 256 colour pallette would be "nice" and perhaps a similar technique for 24 bit images.
Darrel,
Hutch makes a good point here. I would suggest that pallette selection be selectable as it is in PSP. Eventually you should impliment selectable transparencies. I like the eye dropper method used by PSP, it is very simple for a user to select a colr in that manner. This ensures that the color selected for transparency exists in the image as your current method does, also.
What do you think? Just ignore the temptation to RE, some people...
Paul
Nice Paint2, Darrel, - well done :U !
I used to draw a lot with MS Paint, loved it. Until GIMP2 came out ^^" .
Your remark about OpenGL usage in the "to do" list... I doubt you'll need it, I doubt it can improve performance or add features. Its limits to 2096x2096 (on most GPUs) will just be a stumble.
A thing, really missing in ABitmapEditor, is shortcuts for the tools. Shortcuts like "r" for rectangle-selection, "v" for line, "n" for pencil, "f" for bucket, "b" for brush, are important for any graphics app. Note that they are mostly to the left part of the keyboard layout (on qwerty). You basically draw faster and easier with those. Because you don't have to move the mouse or your right hand. Also, +/- or other keys - for zoomin/zoomout (they needn't be keys on the left part of the keyboard, since after a zoomout you anyway have to move the mouse again... unless you make the zoomin/zoomout dependent on cursor position [would be great] ).
Layers - are the best feature you can add (requires alpha-channel). But not complex layers like in PhotoshopCS, that have runtime-computed effects (shadow, bump) ; such layers just make the artist use a hundred layers to do anything useful. But AFAICS, layers are not something you'd like in ABitmapEditor.
I experienced a bug, that crashed the app (but I forgot to copy the register values). I managed to reproduce the bug once, but this time the app exited silently. Thus, I think it's either a garbled ESP/EBP (wrong number of parameters passed to a call), or somewhere ESI/EDI/EBX are not preserved in a callback. The two times, the bug happened when I performed "Paste From", and had a rectangle selected in the bitmap, then after some drawing/selecting, performing a PasteFrom again. I wasn't able to reproduce the bug in the next dozen attempts, though.
Quote from: Lowly J on October 28, 2006, 06:05:53 PM
In fact you seem to have removed the preview in the multiple images thing for now.
No, I didn't. I just checked it on Win '95 and it works.
I will probably add an alpha-channel paste routine.
I am currently working on the printing aspects.
Thanks for everyone's input, all things will be considered.
Regards,
Darrel
Quote from: Darrel on October 30, 2006, 10:35:41 PM
Quote from: Lowly J on October 28, 2006, 06:05:53 PM
In fact you seem to have removed the preview in the multiple images thing for now.
No, I didn't. I just checked it on Win '95 and it works.
I meant of course while you're editing an image from a multi-image icon the side preview DOESN'T change with it. That's what it used to do. We only want it to do this when we can save the multi-image icons properly though...
Another barrage of criticisms for you:
The paintbrush is ALWAYS black.
The thumbnail doesn't jiggle about when the paintbrush is on.
When the paintbrush tool is on, things generally get a bit slooooooow... (If you have a decent size bitmap on screen, not that 400x400 size is
that big...)
Things are generally slow in general (OK, that's just too general to be constructive really)
When you make the bitmap size large enough it crashes (I got it to crash at 1000x1000)
The buttons act on MouseDown, and not MouseUp, the standard way. You probably want them to work in the same way that the huge X button on the top-right of every single window does.
When you rotate an image by a custom amount, the bitmap always changes size, which is unsuitable for use in icons. (Also, the default background colour to fill with is black in this case, rather than the actual set background colour...)
Looks like you've got some REthinking to do. And how about an About dialog when you've sorted everything else!? :U :lol And then to complete it a help file of course.
Contrary to Ultrano's argument, I would say that usage of OpenGL would drastically improve performance based on what it does now, referring to the painting to screen, and there would probably be some useful features in there too. Besides the fact that 2096x2096 barely works in this editor at the moment anyway, I'm sure there's an easy way to cheat and get around that problem so you can use bigger bitmaps. Isn't it possible to store most of the bitmap in memory and only work on what is on screen? Also, I think independent keyboard events should
never have anything to do with the mouse pointer. Although a possible way to do it would be to use shift for zooming. Shift+LMB = Zoom in to pointer; Shift+RMB = Zoom out from pointer; Shift+Drag LMB = Zoom Selection Box. Or maybe you could use Ctrl instead.
Seems to be a lot more to a bitmap editing tool than meets the eye ay? ::)
There are 2 reasons for these problems:
1) Allocating memory for an unnecessary back-buffer and front-buffer
2) Simple undo/redo manager
Instead of keeping a back-buffer and front-buffer, just do a StretchBlt/BitBlt to the device-context, given by BeginPaint/GetDC.
For an undo/redo manager, I've recently made exactly what you need (attached is the complete version). Just give a pointer to pointer of your bitmap before any drawing with XURM_DynArray(). The manager will clone the bitmap-data, then just before your next change to the image it'll compress quickly via XOR+zip. Thus, instead of saving/keeping the whole bitmap, it'll find where the modifications start, where they end, and will compress in a smart and fast way only the modifications (more precisely, their deltas).
I was thinking of using this UndoRedoMgr in a GIMP clone, but then I was forced to get a better PC, where GIMP is not starting-up for 20 seconds... so my only reason to start the project was gone ^^". Btw, set HEAP1= handle of the heap you use, before calling any URMgr procs.
[attachment deleted by admin]
Fixed a problem with the *.jpg writer, added Print support, added an About Box.
I saved a file that was 4096 X 3072.
Regards,
Darrel
Fixed some performance lag problems. Now drawing with the brush or moving a transparent selected or pasted bitmap looks good on my Win '95 75 MHz computer. :dance: :clap:
Brush disappears when cursor is moved off working area.
Will work on line, curve, rectangle, and ellipse drawing next.
Regards,
Darrel :8)
Updated drawing functions.
Fixed a problem with opening a bitmap with 256 or fewer colors.
Hello,Darrel
I just checked it on my winxp,then I found a good function. :U
I have open a 24-bpp bitmap save to a 8-bpp or 4-bpp,then I find the bitmap display effect is very good.
How are you make it? :dazzled:
Regards,
Soulee
Hello soulee,
I believe it's called an octree. Anyway you sum all the seperate RGB components and divide by the total number of pixels to get an average RGB for the entire bitmap. Then do a sum of differences squared of the seperate RGB components and the average RGB components. Take the greatest of these 3 sums and find the most balanced value of this component where approxiamtely half of them are below and half above. Then repeat the process for 2 average colors and their sums of differences squared. Then choose the greatest of the 2 sums of sums of differences squared and take the greatest of its 3 component sums of differences squared and find the most balanced value of this component where approxiamtely half of them are below and half above. Then repeat as necessary until you have the number of colors you want in your bitmap. Then use Floyd-Steinberg dithering to get the resultant color reduced bitmap.
Hope that answers your question.
Regards,
Darrel
Hello Darrel,
octree? :red
Can you post interrelated masm or c code?
Regards,
soulee
Sorry, I have no code available for public consumption.
Regards,
Darrel
Darrel,
I found a problem,
when it run at 256 colors,open image don't use color palette.
soulee
soulee,
I can't duplicate your problem. When I open an 8 bpp bitmap it opens at 8 bpp and when I open a true color bitmap it opens at 24 bpp.
Regards,
Darrel
Added a Sharpen filter. Added some support for OpenGL (under Options). The 3D Block works with 6 picture files the order when opening them is Front-Back-Left-Right-Top-Bottom. The height and width of the block is determined by the front picture. The depth of the block is determined by the left picture. Haven't figured out yet how to take more advantage of OpenGL, oh well it's a start.
Also fixed some display problems associated with covering and uncovering ABitmapEditor's main window in particular if you have a selected bitmap over the main bitmap.
Regards,
Darrel :8)
Darrel,
What do I think about your Bitmap Editor? I love it!
What do I think about your flag? I hate it! It is difficult to read your posts, my eyes keep wandering to it.
Paul
Quote from: PBrennick on April 22, 2007, 02:33:02 PM
What do I think about your flag? I hate it! It is difficult to read your posts, my eyes keep wandering to it.
Paul,
I'll probably change back to Laurel-n-Hardy before too long. I was just showing what could be made with the 3D Flag routine. I kinda like the flag tho'. :bg
Regards,
Darrel
Added support for drawing arcs and pies and using antialiasing. Thanks ramguru
Regards,
Darrel
This is nice indeed :U
I have further suggestions :dance:
1) How about 32bit color support (this is a must for ico format)
a) if editor had 32bit support, object pack like in axialis icon editor would be amazing feature (I'm sure it's not difficult to implement)
2) How about optional grid (when creating ico, cur this would be useful)
Thanks for new version
Added a grid option for zoom level 800%. Also added Blend function.
Regards,
Darrel
Thanks for new features,
however, grid should consist of one pixel width lines (not two), and using some less eye-stressful color like gray :)
Modified the grid.
Fixed the Brush and Grid combination. Added Zoom 1600%.
I was hoping you'll fix that
Quote from: Darrel on April 30, 2007, 03:09:46 AM
Fixed the Brush and Grid combination.
And was about to suggest that :)
Quote from: Darrel on April 30, 2007, 03:09:46 AM
Added Zoom 1600%.
Good work
Changed the rectangle mode to a polygon mode. Draws 3, 4, 5, 6, & 8 sided polygons. Added hatched and gradient brushes.
This is really getting good Darrel :U
Greg
Wow....see ya later photoshop ;) Great work Darrel!!! :U
Ehtyar.
Combined the Ellipse and Polygon modes into a Shape mode. Added Egg and Star shape.
I would also like to take this opportunity to thank everyone for their suggestions, kind words, and encouragement. It is appreciated.
Regards,
Darrel :8)
Changed the Shape Mode to each individual mode. Added dashed line and gradient line.
Fixed the Cut and Skew options. Added Polygon. If you draw the polygon with the left mouse button press the right mouse button to draw it and fill it in or vice versa. Added option for custom brush from bitmap. Added option to enlarge the bitmap if pasted bitmap extends past the edges.
Added Rounded Rectangle. Cleaned up Edit Boxes so they only accept valid values to enable the OK button where needed.
Fixed another Edit Box. Changed the Print process.
Just printed a bunch of pictures and found a problem and fixed it.
Had 1 hdc and 1 hbmp that weren't properly deleted. This should be the last update for a while. Time for more research.
Regards,
Darrel
Added support for TIF (*.tif) files. Now supports all file types I have actually seen.
Now writes progressive .jpg. This had been bothering me a while. For web page development it is a must.
Regards,
Darrel :8)
You can now draw shapes at an angle. May be slow on some machines with the linear gradient brush, hatched brush and texture brush.
Added option to keep aspect ratio on resize and attributes functions.
Added option to rotate bitmap around specified pivot point.
Also added option to keep dimensions when rotating bitmap per request of LowlyJ (aka TheGreatJason). :bg
Regards,
Darrel :8)
Darrel, you do magnificent work, thank you :U :U
Ehtyar.
Fixed problems with rotating bitmaps. Fixed problem drawing with 8-bpp or less. Changed the way rotated shapes are drawn.
Added 3d Button, Pixelize, Swirl, and Water to the Special Effects.
Regards, Darrel :8)
Added Scatter, Sepia, Smooth, and Color to the Special Effects. The Color option allows you to select a range of Hue, Saturation, and Lumination to keep and converts colors not in these ranges to greyscale. Added Arrow option to Line drawing.
Fixed a problem with drawing rotated shapes with a Linear Gradient Brush.
Regards, Darrel :8)
Hi,
...one little problem, when I have a big bitmap (2000x2000(px)), process of making preview of shape that I'm currently drawing takes too long comparing to mspaint :naughty: .
suggestion:
while user selected a RECT, add a mouse rbutton menu for cut,copy...
Fixed drawing routine. Tested at 2500x2500.
Added the rbutton popup edit menu to selected RECT.
Added a SlideShow to Options. Esc key to exit, p to pause, c to continue, lbutton to advance, rbutton to go back. Should mention View Bitmap to exit either use Esc key or lbutton.
Regards,
Darrel
Excellent, Darrel,thank you very much.
Now handles corrupt, invalid, or missing files appropriately.
Regards,
Darrel :8)
Moved SlideShow functions to the File menu.
Fixed a problem that was introduced to the *.png writer.
Fixed problems introduced to PasteFrom and OpenGL File Open for 3D Block.
Regards,
Darrel
Added Perspective, Visions, and Weave to the Special Effects menu.
Regards,
Darrel :8)
Moved Special Effects to the main menu and broke it up into categories. Added Blinds, Tile, Tunnel, Kaleidoscope, Mirror, and Sketch to Special Effects. Added Ellipse, Hectagon, Octagon, and Pentagon to Geometry in Special Effects. Added Ellipse, Hectagon, Octagon, Pentagon, Rectangle, and Star to Texture in Special Effects.
I think that covers everything.
Regards,
Darrel :8)
Excellent work Darrel! Congratulations on such a nice bitmap editor. I look forward to your next additions. :U
FYI - I started writing to the registry now. Dumped OpenGL, mainly because it doesn't work on a memory dc. Started my own 3D work. Doesn't have the 3D Flag or 3D text yet. Other than that I believe it's a good improvement. Lots more user input. I'll probably add a cylinder and a doughnut to the predefined 3D shapes too. Let me know of any predefined 3D shapes you are interested in.
Regards,
Darrel :8)
Fixed the 3D drawing algorithm. Added a light source.
Regards,
Darrel :8)
hey,Darrel.
1. while startup the ABitmapEditor.exe, an Error(File is corrupt or invaild!!!) is being happened.
2. it's not convenient for editting a large bitmap. hope add 10%,..50%.. on menu view.
I've noticed the program won't read some files with a "%" character in the name.
If the view was set to 50% each pixel on the screen would represent 4 pixels of the actual bitmap. How to determine which of the pixels you actually want to edit?
Regards,
Darrel
Changed the way program reads *.bmp and *.jpg files.
I have windows XP sp2 and my UI is set to show the contents of windows when they get sized. When I resize this application some areas flicker without the back buffer. My son has a condition where this might lead to trouble. With that fixed I can't see a reason he wouldn't be really pleased to use it along with me for my simple graphics needs.
Also, I like that I can put this on my USB stick and carry a simple editor (portableApps aside).
Awesome job!!!!
I did a quick fix to the flickering problem. If this is not satisfactory let me know and I'll work on a back buffer.
Regards,
Darrel
That's fantastic! Really super! Only some minor flicker in the color area but that should not be any problem really. Updating my USB now with this tool. Thanks!!
Fixed animated gif reader, modified to read more *.jpg files.
Error Msg on startup.
[attachment deleted by admin]
I'm thinking the problem lies in the different language (changes to the commandline at startup). Does it startup ok if you start it from ABitmapEditor3D?
Hi,
I don't know if this has already been mentioned, but if you:
- open the program
- make sure that it isn't maximised (i.e. just a normal window)
- drag (using the title bar) it so that the window body is off the bottom of the screen - i.e. the title bar is now just above the taskbar
- drag it back into the main portion of the screen
- the menu bar on the left is messed up (see attached)
- you can get it back to normal by doing almost anything to the window
Other than that, it looks like a nice bit of software.
Thanks,
Ossa
[attachment deleted by admin]
Fixed the moving and sizing procedures. Changed somethings with the Registry so download ABitmapEditorReg run it once then delete it.
six_L,
If you right click on a picture file (supported by ABitmapEditor) and choose Open With ABitmapEditor does it start properly and display the bitmap?
Regards,
Darrel
QuoteIf you right click on a picture file (supported by ABitmapEditor) and choose Open With ABitmapEditor does it start properly and display the bitmap?
it's ok.
six_L,
I just did a fix that should enable ABitmapEditor to start properly either by opening the program directly or by selecting an appropriate bitmap file and choosing ABitmapEditor to Open With.
Regards, Darrel
Fixed the *.png writer.
Modified the Saturation procedure and the remove redeye procedure added Solarize and some Histograms.
Run ABitmapEditorReg first.
Regards, :8)
Darrel
Quote from: Lowly J on October 28, 2006, 06:05:53 PM
OK, the text inserting works properly now! Now then, can it be done so that you don't have to be in 100x zoom? Consider double-buffering or any other technique you can think of...
Textbox now works at any zoom level. Supports multiple fonts and rotates.
Added file associations under Options menu, also Resample filters to Enlarge and Reduce.
Now has the option of rotating pasted bitmap onto source bitmap and if you choose rotate it about a given point on the source bitmap.
Supports *.pcx files now
I have been rewriting my code and making it more compact in places. Working towards full alpha channel support.
Very pleased with the new text editor. Give it a cruise. :8)
Regards,
Darrel
Sweep X-Y is the position you Sweep around by given Sweep angle. Angle is the rotation of the oblect itself. Center X-Y is the center of the object if you select Draw under the Image menu. Radius is fo the Triangle, Pentagon, Hexagon, Octagon, and Star. Width and Height is for the Ellipse, Rectangle Rounded Rectangle, Arc, and Pie. Height is for the Egg. Multiple Draw under the Image menu allows you to select number of steps and the change in Angle, Sweep, Radius, Width, and Height per step. Draw and Multiple Draw only work with Arc thru Rounded Rectangle.
Added option to write text mirror reversed or mirror flip.
Regards,
Darrel
Changed the way program draws stars, pentagons, hexagons, and octagons with the mouse. Now draws them to the given ellipse allowing you to make precision stars or whatever. All typed in drawing operations now require width and height. Added a heart as a predefined shape.
Hi Darrel,
thanks for sharing this little gem!
I discovered it just recently, because this sub-forum is somewhat "hidden". I'd like to suggest to move this sub-forum to the "Project Support Forums". If there's not enough space left, then move the "Low Quality PowerBASIC Code" Forum somewhere else.
Switched the Polygon and Spray cursors so they display properly now.
Darrel, could I request the ability to install the package outside of the \Program Files\* folder?
Quote from: Mark Jones on July 30, 2008, 08:50:49 PM
Darrel, could I request the ability to install the package outside of the \Program Files\* folder?
Granted :8)
Nice work Darrel, thanks! :U
Quote from: six_L on March 19, 2008, 08:08:38 AM
2. it's not convenient for editting a large bitmap. hope add 10%,..50%.. on menu view.
Added Zoom out to 50, 25, 12.5, and 6.25%.
Regards,
Darrel
Fixed problems with Zoom out. Added Best Fit Option. I'm not using StretchBlt for Zoom out and Best Fit so the drawing operations are a bit laggie. This is why I had stayed away from Zoom out and Best Fit until now. Don't know what I'm going to do about it yet given the various dependencies on gdiplus brushes. The Zoom in functions should still be drawing at a decent speed.
Regards,
Darrel
Decided to use Triangle (Bi-Cubic) filter fo zoom out and best fit. It has good quality and second to smallest radius.
Fixed a problem with the Polygon drawing function. Added Shadow option Shadow X-Y is amount shadow is shifted right and down, can be negative to go left or up. Works on everydrawing mode operation except fill. :bg Even works for pasted bitmaps and text.
I would rather have a feature you don't use, than not have one you need.
Regards, :8)
Darrel
Quote from: Lowly J on October 26, 2006, 10:34:57 PM
There are a few noticable problems with yours at the moment though. Main one for me is how it handles the multiple image icons. Not that it handles them very much at all yet... You see when you open a multi-image icon they all appear on the side. That's great! Exactly what we want it to do. To change onto one you have to double-click on it. Single-click would be better I think... No big problem there though. But if you edit one of them and then change to another, all the edits you have made suddenly disappear on the icon size you were editing...??? And if you try to save the file itself to stop this happening, you find that only the image that was selected is saved, by its poor little self. We want the whole collection to be saved.
Now you can edit a multiple image file and save the changes. :8)
Where have you gone to Lowly J?
Regards,
Darrel
Fixed problems with 256 or less color depth
GDI and GDI+ apparently do not write the alpha channel to my knowledge. So I either need to do a second bitmap of just the alpha channel (greyscale), which would double the drawing time or allow user to draw alpha channel map prior to saving.
Input appreciated,
Darrel
bug report:
1. "Font input" doesn't support unicode.
2. "Image"->"Attributes"->modify "w,h" over thrice. crashed.
3. copy JPG file on disk, then "Paste", crashed.
Quote from: six_L on November 06, 2008, 06:19:31 PM
bug report:
1. "Font input" doesn't support unicode.
2. "Image"->"Attributes"->modify "w,h" over thrice. crashed.
3. copy JPG file on disk, then "Paste", crashed.
six_L,
Sorry for the slow reponse, I've been taking a hiatus from the computer and programming for awhile. I don't plan on getting back to it until the New Year.
Anyhow, number 3, I have a pretty good idea on what needs to be done. Number 2, shouldn't be to hard to track down and fix. Number 1 I'm in the dark on at present, but will look into after I resolve the other 2 and finishing update for full alpha channel support.
Thanks for the info and I will respond much quicker to any furthe comments and/or suggestions.
Regards,
Darrel
I love this bitmap editor, but I can't figure out how to keep my colors the same way they are on input.
I have a 256 color (grayscale) bitmap I'm using as an alpha channel. FF=white, 00=black, etc.
I want to edit it, but whenever I save it, the editor changes all white pixels to value 01h.
Since I'm using this as an alpha channel, I want white to stay at 255.
What's the secret? I can't seem to find the option.
Attached is an example bitmap. Make a copy before you put it in the editor.
[attachment deleted by admin]
Jimg,
Thanks for your interest and support.
Currently I am using the gdiplus library to draw with the alpha channel. Which draws okay put does not preserve the alpha channel. Therefor I am dumping gdiplus and writing all my own drawing functions. Which I am very optimistic about since I was redoing my moonphase program and wrote my own drawing procedures for it and it looks pretty good if I do say so myself. :) BTW: the new moonphase program will have have rise and set times of the sun and moon for any given location well within an accuracy of 5 minutes. I think you all will like it when I get it posted. Back to the bitmap editor, I am going to include an option to view just the alpha channel so you will be able to edit it directly (of course I am sure you know it will simply be a greyscale image). I will give you an option to draw antialised per normal or just alpha channel. Therefor say you had a circle it would look jagged but you could save it as say an alpha icon or cursor, then it will appear smooth when apllied to the windows environment. Anyhow I am currently working on reading and writing all the different *.jpg types, Currently I am using windows to open *.tiff and *.jpg to the various file types in these files. My version will of course aplly a 255 alpha channel to all *.jpg files. Dumping gdiplus means I have to learn font files now! Oh, boy :).
Enough of my rambling.
The short answer I understand your predicament, and it will be fixed, how soon I can not say. Please be patient.
Thanks again for your support and encouragement.
Reagards, Darrel
Excellent. Thank you Darrel!
Darrel-
I just found out, even though the absolute value of the bytes change, I can load it into a true color bitmap and the bytes now have the correct value, and are duplicated for each rgb color. So I can just pick one color byte and use as I needed.
It's a couple of extra step for me, but no big deal compared to rewriting your whole program :wink
I used it 5 times yesterday. I like it. My only problem with it is that I paste a large image coming from the clipboard and I only see a small part of the image, the rest is black. I have to do a first "CROP" to get the full image and then I need to crop again to make the smaller image.
Jimg,
I'm glad you found a solution for the time being. None the less I am still going to rewrite just about everything.
mitchi,
I'm unaware of your problem, Have you selected the "Fit to Paste" option in the "Options" menu and "Best Fit" in the "View" menu.
Regards,
Darrel