Images

Adding watermarks to reports is something that I've already blogged years ago during the development of GdiPlusX. In those times, we needed to create a specific ReportListener to manage the report pages, and draw the watermarks. We needed another external library, GdiPlusX, that was responsible for drawing at the report surface, and for applying some special effects to the images, such as transparencies and converting to grey scale.

FInally, we have this feature in FoxyPreviewer too ! That means that from now on, you can add watermarks to your reports without having absolutely any knowledge about GDI+ or… Continue reading

FoxyPreviewer brings another cool facility, that allows you to draw your texts in the report surface (and export it) having control on each word. Forget those old workarounds, generating images to draw some texts in your reports or even embedding RTF controls in your reports !

 

This brings a super cool new feature, allowing you to add some basic HTML texts to your fields. This means that you can from now on determine how EACH WORD in your field should be formatted!
See the image below, all the text is in ONE SINGLE FIELD !

How to do it… Continue reading

hey guys,

thanks to Luis Maria Guayan and Guillermo Carrero from the spanish speaking community, now we have a brand new freeware and open source project for VFP.

Foxbarcode is a 100% visual foxpro class that provides a tool for generating images with different bar code symbologies to be used in vfp forms and reports, or exported to other applications.

 

you can learn more about the class foxbarcode and download freely from http://sites.google.com/site/foxbarcode
foxbarcode is still in beta, but it is 100% functional. the most important barcodes are already available, and they're already working on new ones.

instead of… Continue reading

After I posted a Gauge sample with gdiplusx some months ago, Rafael Lippert from Brazil adapted my original code and created this cool analog watch, using GdiplusX and the 'ImageCanvas' class:

LipsilClock

 

Cool isn't it ? it permits many customizations, and you may use it as a sample to learn other gdiplusx techniques.

You may get it directly from rafael' blog, at: http://rafaellippert.wordpress.com/2011/06/21/a-gdiplusx-analog-clock/

It's worth to spend some time in rafael's blog and website - www.lipsil.com.br . I'm sure you'll find some really very neat utilities.

Here are some notes on bmp transparencies on vfp, based in some conclusions I took after some discussions in Foxite, specially the ones with Bernard Bout.

BMP image files, when used in the picture property of the image control usually show whites - rgb(255,255,255) as transparent. VFP creates a temporary mask for our pictures in order to show this way.

picture 1: bmps can have whites converted to transparent when using the "picture" property and backstyle set to "transparent".

 

But this works only for the 'Picture' property, not for 'PictureVal' !

The code below creates a simple image… Continue reading

That's a very easy task for Gdiplus-X:

important:

All samples below use the Gdiplus-x library. Get the latest stable release from codeplex:

http://www.codeplex.com/wiki/view.aspx?projectname=vfpx&title=gdiplusx

do locfile("system.app")

with _screen.system.drawing

   local mybitmap as xfcbitmap
   && create a bitmap object
   mybitmap = .bitmap.new(getpict())

   && save the bitmap in different formats
   mybitmap.save("c:\mypng.png", .imaging.imageformat.png)
   mybitmap.
save("c:\mybmp.bmp", .imaging.imageformat.bmp)
   mybitmap.
save("c:\mytiff.tif", .imaging.imageformat.tiff)
   mybitmap.
save("c:\myjpeg.jpg", .imaging.imageformat.jpeg)
   mybitmap.
save("c:\mygif.gif", .imaging.imageformat.gif)

endwith

Of course, you can save as jpeg… Continue reading

After all those posts discussing and showing how to create gradient backgrounds for vfp forms, I finally decided to create a simple but powerful class to ease this process.

The GradBackgrounds class is stored inside the gradientobjects.vcx, the class that was published last year that converts any commandbutton, graphical checkbox or graphical optionbox.

Just drop an instance of the class gradbackgrounds to any form, container or pageframe and set some properties to obtain the gradient effects shown below.

All the background images are created using gdi+, but with no helper class, because I wanted to obtain the best performance… Continue reading

Some types of files allow to store various icons together with other binary data, such as exes and dlls. .ICO files also allow to store more than one icon in a single file. Windows uses this a lot, and stores almost all the icons that it uses all the time in some dll or exe libraries.

The GdiplusX library can easily extract these icons, using the function “ExtractAssociatedIcon” from the xfcIcon class, as follows:

important:

All samples below use the Gdiplus-X library from VFP-X project. Download the latest stable release from codeplex:

http://www.codeplex.com/wiki/view.aspx?projectname=vfpx&title=gdiplusx

 

 

* the following… Continue reading

After some requests, i'm sending a new version of gpimage2, an adapted class from the original GpImage class from alexander golovlev.

This new version adds 3 new features to the previous version:
control smoothing mode, interpolation mode and a gradient brush.

Gdi+ originally offers 6 kinds of linear gradient brushes, and many possibilities for path gradient brushes, but to update Gpimage2 is not a priority any more because I think that the GdiplusX library brings much more value, and is compatible with the .NET "system.drawing" namespace.

So, if you still didn't upgrade to VFP9, you can download this new … Continue reading

Recently, MSDN added a new and very useful feature to the .net development site, the msdn community content. According to them, "msdn community content provides an infrastructure for users to comment, edit, and add content to the visual studio 2005 and .net framework 2.0 online documentation. (...) anyone can register for the site by signing in with a microsoft passport or windows live id and agreeing to the site terms of use and the participant code of conduct.  anyone who is registered and signed in to the site can create new community content and edit existing community… Continue reading