How do you create a .cur (for a mouse cursor), from a GIF image file?
What tool or process can I use?
Best Solution
You need to use a cursor creator, which is pretty much just a bitmap with some header data. I'd use Irfanview if you do not use Visual Studio or what not. If you use Visual Studio, just create a new cursor, and copy and paste the image data right into the editor... I'm sure I could whip up a tool that does this for you on a file basis, but I'm sure they are many tools out there already.
This inSampleSize option reduces memory consumption.
Here's a complete method. First it reads image size without decoding the content itself. Then it finds the best inSampleSize value, it should be a power of 2, and finally the image is decoded.
// Decodes image and scales it to reduce memory consumption
private Bitmap decodeFile(File f) {
try {
// Decode image size
BitmapFactory.Options o = new BitmapFactory.Options();
o.inJustDecodeBounds = true;
BitmapFactory.decodeStream(new FileInputStream(f), null, o);
// The new size we want to scale to
final int REQUIRED_SIZE=70;
// Find the correct scale value. It should be the power of 2.
int scale = 1;
while(o.outWidth / scale / 2 >= REQUIRED_SIZE &&
o.outHeight / scale / 2 >= REQUIRED_SIZE) {
scale *= 2;
}
// Decode with inSampleSize
BitmapFactory.Options o2 = new BitmapFactory.Options();
o2.inSampleSize = scale;
return BitmapFactory.decodeStream(new FileInputStream(f), null, o2);
} catch (FileNotFoundException e) {}
return null;
}
Best Solution
You need to use a cursor creator, which is pretty much just a bitmap with some header data. I'd use Irfanview if you do not use Visual Studio or what not. If you use Visual Studio, just create a new cursor, and copy and paste the image data right into the editor... I'm sure I could whip up a tool that does this for you on a file basis, but I'm sure they are many tools out there already.