January 1, 2005 e-mail [mailto:joe.nemeth@cpluscsystems.axelero.net] Alias [NJG] Moved introduction to [Németh József Gábor] e-mail: [mailto:joe.nemeth@cpluscsystems.axelero.net] Contributed pages (in reverse chronological order) * [Dump windows] * [Yet again dll caller] -- follow up to [Yet another dll caller] * [A regexp extension] -- a companion to [A regexp twist] * [A regexp twist] -- with this extension regexp can be made to execute at each match a specified Tcl script that may make use of the result of the match * [Yet another dll caller] -- extension for calling functions in dynamic libraries from Tcl scripts; comes handy if you work in winNT/win2k/winXP and want to access the system API * [Enhanced photo image copy command] -- extension that provides arbitrary rotation and continuous scaling + filtering of photo images * [vfs::zip] -- log of finding a couple of subtle bugs in the '''vfs::zip''' virtual file system Contribution to pages (in reverse chronological order) * [Dodekalogue] * [Windows shell links] ---- In my mother tongue when you specify things (names, dates, addresses) you proceed from general to specific. Thus '''Németh''' is my ''family name (surname)'' '''József''' (Joseph) is my ''given name (first name)'' and '''Gábor''' (Gabriel) is my ''»middle« name'' (comes last as it further refines my identity). So this is Joe G. Németh, pronounced like ''»namat«'' with stress on the first syllable. The ending ''»h«'' is not sounding as it merely refers to my nationality, the meaning of ''német'' being simply ''German''. My name (without the middle initial) is quite common. If you are old enough you may have even heard about Joe Namath, the American football quarterback who had been a quite high orbiting star in the 1960's and whose family immigrated to the US from here under the name Németh. I am an electrical engineer by profession and all through my career I have been working in telecommunications and computing. I am running a small consulting firm and even until very recently I have also been doing contracted project management for large telecom firms. Over time I made a habit of learning and using all the tools people I had been commanding did their job with. Made it easier to see through people's pretexts for not delivering as expected. The only exception is [Tcl/Tk]. Nobody around me was using it when I fell into love with it. It happened quite a time ago, distinctly before the change to version 8.x.x happened. Since then I used it in over a hundred varying sized personal projects the result of a few of which I intend to put in the public domain over this [Wiki]. As I do it perhaps I will continue my personal saga as well. ---- July 8, 2004 For Xmas 2000 I bought a ''Kodak DCS280'' digital camera and soon was compelled to provide a simple tool for my family whereby they could browse through the piling heap of shots and select those to get a photo print of. That was when I realized how limited the photo image handling capability of ''[Tk]'' was. The irritation I firs felt grew on me as I had to listen to the repeating complaint about how neck breaking it was to look at portrait shots in landscape display. Although I had never set my eyes on the ''Tcl/Tk'' sources before and I had not had much experience in [C] programming either, I decided to correct the situation. First I located the appropriate source file, ''tkImgPhoto.c''. I was enormously relieved to find that to change the orientation of a photo image required only the manipulation of the pointers in the defining ''struct''. It was only a bit harder to find the way to add a new option, '''-roll''' ''?integer?''. I patched up the source, recompiled Tk and the complaints died. Frustration gone itching set in: I wanted arbitrary rotation and scaling. First I defined a new image type ''rawpix'' to be able to dump/load photo image pixels to/from files. (This way I was able to generate geometric images for testing.) Not to be forced to continuously recompile ''Tk'' then I created a new command, '''rotate''' '' ??'', as a shell for the development. Only when I had a reasonably tested code did I merge it into ''tkImgPhoto.c''. By June 2001 I declared the project completed and until recently the only thing I did with it was that in each new release of ''Tcl/Tk'' I almost blindly replaced ''tkImgPhoto.c'' with my version. Why was I sitting on it this long? First I had no convenient means of publishing it: I did not know about this ''wiki'' and I had no decent presence on the Internet. Second, I thought it needed more testing, some beautifying of the code and the addition of some features I left out of pure laziness. Finally, when (seeing the growing interest for image transformations on this ''wiki'')I was on the verge of coming out with what I did [tcl-magick] hit me in the eye and then again [TclMagick]. Why then the sudden urge? For a long period not only there has been no development involving Tk's photo image manipulation but none even has been suggested. So when the announcement of [TclMagick] (first [tcl-magick]) appeared on this ''wiki'' I myself also thought that was the way to go. But when I merged my code into ''tkImgPhoto.c'' in the 8.4.6 release I noticed a functional (as opposed to cosmetic or bugfix) modification (concerning alpha blending). It was that started the itching again. Interested about the result? Then look at [Enhanced photo image copy command] ---- [RS]: Üdvözöljük a Tcl Wiki (welcome to the Tcl Wiki)! Your work on enhanced [photo] copy looks very promising - hope it will soon make it into the Tk core! [CL] says, "me, too": I like this page, and I like what I've seen of your [[photo]] work. Keep up the good work! <> Person | Tcl'ers