вот как я реализовал поставленную задачу, если я её верно понял
вот как сие работает: Для просмотра ссылки Войдиили Зарегистрируйся
УВЫ! Но в опере не пашет, только в IE (на файрфоксе не тестил). На досуге попробую разобраться в чем дело.
вот как это работает:
юзер загружает картинку. если размер слишком большой - ресайзим средствами пхп (мануалов по этому вопросу в сети куча) и сохраняем в папку, после чего отдаем на съедение моему творению.
karlson.jpg - играет роль загруженной пользователем картинки
1.gif - прозрачная картинка, играющая роль рамки.
пользователь может передвигать рамку и изменять её размер, может изменять размер у фоты.
кнопка "Показать данные" показывает результаты работы скрипта: положение/размеры рамки, размеры фоты. на основе этих данных вырезаем соответствующий кусок из пользовательской фоты - мануалы как это сделать средствами пхп опять таки можно найти в сети.
З.Ы. если упомянутые мной мануалы проблемно отыскать - обращайтесь, найду и запостю собственноручно
HTML:
<div style='zIndex:2;' contentEditable=true>
<img src='./karlson.jpg' id='userphoto'>
</div>
<div contentEditable=true><img id='ramka' src='./1.gif' style='position:absolute;top:10px;left:10px;border:solid 2px blue;zIndex:3;' ondragstart="Move(this);return false;"></div>
<button onclick='ShowPostData();'>Показать данные</button>
<script type="text/javascript">
function Move(ClickedItem)
{
SelectedItem = ClickedItem;
SelectedX = SelectedItem.style.pixelLeft;
SelectedY = SelectedItem.style.pixelTop;
MouseX = event.clientX;
MouseY = event.clientY;
document.onmousemove = Drag;
document.onmouseup = Drop;
}
function Drag()
{
SelectedItem.style.left = SelectedX + (event.clientX - MouseX);
SelectedItem.style.top = SelectedY + (event.clientY - MouseY);
}
function Drop()
{
document.onmousemove = null;
document.onmouseup = null;
}
function ShowPostData()
{
pictureleft=document.all.userphoto.offsetLeft;
picturetop=document.all.userphoto.offsetTop;
picturewidth=document.all.userphoto.offsetWidth;
pictureheight=document.all.userphoto.offsetHeight;
ramkaleft=document.all.ramka.offsetLeft;
ramkatop=document.all.ramka.offsetTop;
ramkawidth=document.all.ramka.offsetWidth-4;
ramkaheight=document.all.ramka.offsetHeight-4;
//4 - ширина бордера рамки, равна 2*толщина_бордера
res='Координаты левого верхнего угла рамки: '+(ramkaleft-pictureleft)+','+(ramkatop-picturetop)+'\r\n';
res+='Ширина рамки: '+ramkawidth+', высота рамки: '+ramkaheight+'\r\n';
res+='Ширина фотки: '+picturewidth+', высота фотки: '+pictureheight;
alert(res);
}
</script>
вот как сие работает: Для просмотра ссылки Войди
УВЫ! Но в опере не пашет, только в IE (на файрфоксе не тестил). На досуге попробую разобраться в чем дело.
вот как это работает:
юзер загружает картинку. если размер слишком большой - ресайзим средствами пхп (мануалов по этому вопросу в сети куча) и сохраняем в папку, после чего отдаем на съедение моему творению.
karlson.jpg - играет роль загруженной пользователем картинки
1.gif - прозрачная картинка, играющая роль рамки.
пользователь может передвигать рамку и изменять её размер, может изменять размер у фоты.
кнопка "Показать данные" показывает результаты работы скрипта: положение/размеры рамки, размеры фоты. на основе этих данных вырезаем соответствующий кусок из пользовательской фоты - мануалы как это сделать средствами пхп опять таки можно найти в сети.
З.Ы. если упомянутые мной мануалы проблемно отыскать - обращайтесь, найду и запостю собственноручно