Jcrop обрезать изображение
Я пытаюсь обрезать изображение с помощью Jcrop. Это не работает, я получаю исключение "входная строка была не в правильном формате".
<script type="text/javascript">
jQuery(document).ready(function () {
jQuery('#crop').Jcrop({
onSelect: updateCoords
});
});
function updateCoords(c) {
jQuery('#X').val(c.x);
jQuery('#Y').val(c.y);
jQuery('#W').val(c.w);
jQuery('#H').val(c.h);
};
<asp:Button ID="Submit" runat="server" Text="Crop"
onclick="Submit_Click" />
<asp:Image ID="Image" runat="server" Visible="False" />
<img src="Content/UploadedImage/Image.jpg" id="crop" alt=""/>
<asp:HiddenField ID="X" runat="server" />
<asp:HiddenField ID="Y" runat="server" />
<asp:HiddenField ID="W" runat="server" />
<asp:HiddenField ID="H" runat="server" />
Пытаясь достать кординаты
protected void Submit_Click(object sender, EventArgs e)
{
if (IsPostBack)
{
int x = Convert.ToInt32(X.Value);
int y = Convert.ToInt32(Y.Value);
int w = Convert.ToInt32(W.Value);
int h = Convert.ToInt32(H.Value);
3 ответа
У меня была та же проблема, и я решил ее, просто сделав это:
var updateCoords = function(c) {
$('#x1').val(Math.round(c.x));
$('#y1').val(Math.round(c.y));
$('#x2').val(Math.round(c.x2));
$('#y2').val(Math.round(c.y2));
$('#w').val(Math.round(c.w));
$('#h').val(Math.round(c.h));
};
Ну, этот код - то, что я использую
В клиенте у меня есть это.. но я не думаю, что это создает проблему
var updateCoords = function(c) {
$('#x').val(c.x);
$('#y').val(c.y);
$('#w').val(c.w);
$('#h').val(c.h);
};
На сервере общего обработчика upload.ashx я получаю размеры, используя
Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
Dim x As Integer = Integer.Parse(context.Request("x"))
Dim y As Integer = Integer.Parse(context.Request("y"))
Dim w As Integer = Integer.Parse(context.Request("w"))
Dim h As Integer = Integer.Parse(context.Request("h"))
Кроме того, где вы получаете ошибку? на клиенте или на сервере? а что кидает?
И похоже, что вы пытаетесь получить значения формы после обратной передачи, которые больше не существуют, потому что к этому моменту страница была повторно инициализирована без ее исходных значений... потому что именно так работает процесс рендеринга страницы.NET.
Поэтому вы должны либо сохранить переменные в сеансе в памяти, отправить обратно значения себе и извлечь их с помощью Request.Form или отправить данные с помощью метода GET и получить значения, как у меня
jQuery('#X').val(Math.round(c.x));
jQuery('#Y').val(Math.round(c.y));
jQuery('#W').val(Math.round(c.w));
jQuery('#H').val(Math.round(c.h));