What I call an “Image Object” is a png file with a transparent background and containing only one subject, such as an isolated person.
Here is an example:
Click image for larger view
This was made in GIMP by the following method, but I imagine other editors would work as well:
Extract a single figure from an image and paste into GIMP as new image.
create a new transparent layer.
Select the background, select the figure and copy.
Select the transparent layer, paste and anchor the floating selection.
Hide the background and save the layer as a png file.
Here is something I did with the “object”:
Click image for larger view
The figure on the right was given perspective, which had the effect of being a 3d rotation. This can be seen by comparing the superimposed images at the bottom.
Another thing that can be done is to use “image objects” to create 3d web pages.
Here is an example:
Click image for larger view
I had to screen record and convert this to an animated gif, so the quality is reduced, but the idea is there.
here is the code:
<html xmlns='http://www.w3.org/1999/xhtml'>
<head profile='http://gmpg.org/xfn/11'>
<title>Enter Title Here</title>
<style>
body {margin-left:0;margin-right:0;font:normal normal normal 15pt Arial;background: #777777}
#i1,#i4{position: absolute; left: 20%; top: 20.5%; height: 380px}
#i4{left: 58%}
#i3{position: absolute; left: 27%; top: 31.5%; height: 380px}
#i2{position: absolute; top: 20%; left: 15%; width: 70%}
#b1{position: absolute; left: 10%; font:normal normal normal 15pt Arial}
</style>
</head>
<body><br />
<input type=”button” id=”b1″ name=”b1″ value=”rotate” onclick=’rot();’/>
<img id=”i2″ src=”file://D:/Misc/Garden.jpg” width = “” height = “” alt = “” align=”” />
<img id=”i1″ src=”file://D:/Misc/runner1.png” width = “” height = “” alt = “” align=”” />
<img id=”i3″ src=”file://D:/Misc/runner2.png” width = “” height = “” alt = “” align=”” />
<img id=”i4″ src=”file://D:/Misc/runner1.png” width = “” height = “” alt = “” align=”” />
var j = -2; var si; var on = false;
function rot() {
if (! on) {
document.getElementById(“b1”).value = “stop”;
on = true;
} else {
on = false;
document.getElementById(“b1”).value = “rotate”;
}
if (on) {
si = setInterval(“rot1()”, 40);
} else {
clearInterval(si);
}
}function rot1() {
j++;
if (j==-1) {
document.getElementById(“i1″).style.transform=”rotateY(0deg)”;
document.getElementById(“i2″).style.transform=”rotateY(0deg)”;
document.getElementById(“i4″).style.transform=”rotateY(0deg)”;
}
if (j==0) {
document.getElementById(“i1″).style.transform=”rotateY(-4deg)”;
document.getElementById(“i2″).style.transform=”rotateY(3deg)”;
document.getElementById(“i4″).style.transform=”rotateY(-4deg)”;
}
if (j==1) {
document.getElementById(“i1″).style.transform=”rotateY(-8deg)”;
document.getElementById(“i2″).style.transform=”rotateY(6deg)”;
document.getElementById(“i3″).style.transform=”rotateY(-8deg)”;
}
if (j==2) {
document.getElementById(“i1″).style.transform=”rotateY(-12deg)”;
document.getElementById(“i2″).style.transform=”rotateY(9deg)”;
document.getElementById(“i4″).style.transform=”rotateY(-12deg)”;
}
if (j==3) {
document.getElementById(“i1″).style.transform=”rotateY(-8deg)”;
document.getElementById(“i2″).style.transform=”rotateY(6deg)”;
document.getElementById(“i4″).style.transform=”rotateY(-8deg)”;
}
if (j==4) {
document.getElementById(“i1″).style.transform=”rotateY(-4deg)”;
document.getElementById(“i2″).style.transform=”rotateY(3deg)”;
document.getElementById(“i4″).style.transform=”rotateY(-4deg)”;
}
if (j==5) {
document.getElementById(“i1″).style.transform=”rotateY(0deg)”;
document.getElementById(“i2″).style.transform=”rotateY(0deg)”;
document.getElementById(“i4″).style.transform=”rotateY(0deg)”;
};
if (j==6) {
document.getElementById(“i1″).style.transform=”rotateY(4deg)”;
document.getElementById(“i2″).style.transform=”rotateY(-3deg)”;
document.getElementById(“i4″).style.transform=”rotateY(4deg)”;
}
if (j==7) {
document.getElementById(“i1″).style.transform=”rotateY(8deg)”;
document.getElementById(“i2″).style.transform=”rotateY(-6deg)”;
document.getElementById(“i4″).style.transform=”rotateY(8deg)”;
}
if (j==8) {
document.getElementById(“i1″).style.transform=”rotateY(12deg)”;
document.getElementById(“i2″).style.transform=”rotateY(-9deg)”;
document.getElementById(“i4″).style.transform=”rotateY(12deg)”;
}
if (j==9) {
document.getElementById(“i1″).style.transform=”rotateY(8deg)”;
document.getElementById(“i2″).style.transform=”rotateY(-6deg)”;
document.getElementById(“i4″).style.transform=”rotateY(8deg)”;
}
if (j==10) {
document.getElementById(“i1″).style.transform=”rotateY(4deg)”;
document.getElementById(“i2″).style.transform=”rotateY(-3deg)”;
document.getElementById(“i4″).style.transform=”rotateY(4deg)”;
j = -2;
}
}
</body></html>
I used two objects and a background image.
The foreground object was given an oscillating Y rotation, while the background was rotated in the opposite direction. The mid figure was not given a rotation.
Also, I made the button a toggle. If it is not rotating, clicking it will start rotation and clicking a image with rotation will stop it