RU/2: Форум. Общение пользователей и разработчиков OS/2 (eCS). : изучается спрос на софтину :)


Список сообщений | Написать новое | Ответить на сообщение | Домой Поиск:
Предыдущее сообщение | Следующее сообщение
From : dixie, 2:5022/32
To : All
Subj : изучается спрос на софтину :)

Могу доточить до описанного ниже состояния и выложить. Но уже есть alchemy, pmview. Потому вопрос - оно надо кому-ньть в количестве больше двух с четвертью человек? :))
---------------------
Unfortunately this software does NOT support for:
1. batch processing (*.ext)
2. TTF rendering (this may be fixed in future ;))
3. tonns of image formats
4. OS/2 icon and bitmap formats(!!)
5. 1,4 bit color formats (will be fixed)
6. writing GIFs with global palette
7. reading "optimized" animated GIFs (will be fixed)

Fortunately this software support for:
1. Reading:
- BMP: 8 bit (plain & RLE), 15,16,24,32 bit, top-bottom/bottom-top.
- PCX: 2,4,8,24 bit. (2,4 bit converting to 8 bit on load)
- PNG: all (16 bit R,G,B components converting to 8 on load)
- GIF: all
- JPG: all, except CMYK (jpeglib 6)
- TGA: all except right-to-left (where you can find this one? ;)
2. Writing:
- BMP: 8 bit (plain & RLE), 15,16,24,32 bit
- PCX: 8,24 bit
- PNG: 8,24,32 bit,grayscale,transparent color
- GIF: all, transparent color, multipage
- JPG: all, grayscale
- TGA: all, grayscale (RLE compressed by default, but only if compressed
data is smaller than uncompressed).
3. Converting:
- colors everything between 8,15,16,24,32 bits per pixel
- resize images
- adding constant alpha channel value to the image
4. Script engine:
- C/C++ like syntax
- many internal routines: creating images, direct access to the image
buffer, converting, drawing lines/rectangles, blitting (with alpha
channel support) and other...
- capable of direct import of external functions, for ex.
/* -- */
extern "som.dll" name "somPrintf"
int cdecl printf( char * __format, ...);
/* -- */

Usage: alch <destin format> <source string> <destin file> [options]
alch -l <source file> - list image contents
alch -i <source file> - detailed image info

destination format:
JPG[+][P][Cfmt][I/S/F][quality] -> write JPEG (default: "JPGS75")
'+' - optimize on
'P' - progressive
'Cfmt - subsampling/format: fmt = RGB,Y41,Y42
'I'/'S'/'F' - int/fast/float DCT
'quality' - 1..100
GIF[9][+] -> write GIF
'+' - append if file exist
'9' - write GIF89a (transparent tag)
BMP -> write Windows Bitmap
RLE -> write RLE-compressed Windows Bitmap
PCX -> write PCX
PNG -> write PNG
TGA[-][s/p][b][n] -> write Targa bitmap
'-' - do not pack with RLE
'p' - write complete color palette
's' - strip color palette top (highly not recommended - only Image
Alchemy can correctly read this!)
'b' - top-bottom
'n' - do not write extended header
options (case sensitive):
-c=x[,y] - convert x pictures from pos y
-ca - convert all pictures in library
-m=<destin file> - mask for multiple pictures (ex. out%d.pcx)
-x=width - resize to width
-y=height - resize to height
-t=color - set transparent color (RGB, ex. -t=0xFF00FF)
-a=value - add constant alpha channel value
-t - remove transparent color
-q - be quiet
-v - write log and script dumps
-g - convert image to grayscale
-fi{v,h} - flip before processing (vert./horz.)
-fo{v,h} - flip output image(s) (vert./horz.)
-pr - proportional resize (for only -x or -y)
-fill - fill instead of stretch (for -x,-y)
-r=x,y,dx,dy[,step_x,step_y,count[,in_line]] - get source image rectange
-cc=c1,c2 - change color c1 to color c2
-si=script - execute script on input image(s)
-so=script - execute script on output image(s)
-i=dir - additional include directory for scripts

examples:
alch jpg+pcy42f95 test.bmp test.jpg
Read test.bmp and save it as optimized progressive JPEG with
YUV422 subsampling, float DCT and quality=95

alch tga- test.bmp test.tga -a=0x7F
Read test.bmp, convert it to 32 bit image with alpha channel by
adding alpha value =127 and save it to uncompressed TGA

alch png test.bmp%32 test.png -t=0xFFFFFF
Read test.bmp, convert it to 32 bit image, set transparent color
0xFFFFFF (white) and write to test.png (note: transparent tag in
PNG does not supported by most image editors)

alch gif test.bmp%8 test.gif -r=0,0,16,0,16,0,16
Read test.bmp, convert it to 8 bit image and save 16 rectangles
with size 16,16 and top left coordinates 0,0; 0,16; 0,32; .. 0,240
as separate pages of output GIF image.

alch rle test.bmp%8 mosaic.bmp -x=1024 -pr -fill
Read test.bmp, convert it to 8 bit image, set size of output image
to 1024xYYY (with keeping aspect ratio), fill it by test.bmp and
save result to RLE compressed mosaic.bmp.

alch tgabn test.bmp test.tga -g
Read test.bmp, convert it to grayscale and save to top-bottom RLE
compressed TGA without extended (TGA 2.0) header.

alch bmp test.gif -c=2 -m=test%2.2d.bmp
Read multipage test.gif and save first two pages to separate
BMP files test00.bmp and test01.bmp

alch bmp test.gif?2%15 -m=test%2.2d.bmp -si=advproc.scr
Read second page of test.gif, convert it to 15 bit image (555),
process in script advproc.scr and save results to separate BMP files
test00.bmp, test01.bmp... (script can handle number of output images
(add or remove some)).

Alch mean "tiny Alchemy". If Handmade Software will ask for change this
name, i'll do it, but i'm too lazy to find another name now ;)

Script language:
Please, note - script language is in permanent alpha stage ;)
Futures:

1. C/C++ syntax.
2. Full C preprocessor.
3. Operation overload support (between standard types too).
4. Classes (limited).
5. "with" operator (pascal analogue - with(rec) {} ).
6. Direct import of external functions. Supported calling conventions are:
__cdecl, __stdcall, __fastcall, __pascal, __delphi (it can emulate ICC
_Optlink by using some hacks).

Bugs & imcompatibilites:
1. Local static variables in procedures are initialized at each entrance.
2. func(void) != func().
3. Const does not supported (ignored now).
4. Type compatibility can be unstable of slighlty different.
5. C-like structure declarations is not supported:
struct KuKu *Var;
6. Code can be written outside of function body too. It can be executed
duaring initialization stage (initing gloabal variables & classes).

About supported functions (see. include/alch.h):
1. Creating 8,15,16,24,32 bpp image
2. Converting between this formats.
3. Drawing rectangles (with optional alpha transparency).
4. Blitting images (with alpha channel support).
5. Set/remove transparency.
6. Direct access to image data.
7. Creating alpha channel for image.
8. Converting to grayscale.
9. Flipping, scaling, brightness, replace colors.
10. Creating images with external data (by suppling pointer & pitch).
11. Text output by using:
- bit fonts - in BIOS format (simple array with bit data).
- a specially prepared bitmaps with letters:
- simple bitmap
- bitmap with alpha channel (for ex. letters with shadow)
- grayscale 8-bit bitmap (colored output)

Future:
If your send me some money ;), you can ask for the following futures:
1. more image formats
2. TTF support
3. VIO image viewer (for diskette boot)
4. more script functions
5. batch processing
6. full animated GIF support (even with optimizer)
7. PM image viewer
8. script compiler (with EXE output!)


Wed 15 Sep 2004 10:09 Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Geck




Programmed by Dmitri Maximovich, Dmitry I. Platonoff, Eugen Kuleshov.
25.09.99 (c) 1999, RU/2. All rights reserved.
Rewritten by Dmitry Ban. All rights ignored.