해결해야 할 몇 가지 복잡한 문제가 있습니다. 이제 html5에서 객체 캔바스를 지원하는 자바 스크립트에서 이러한 함수를 작성해야합니다. html5는 그림의 일부를 잘라내어 미리보기에 표시합니다. 나는 이미지의 다른 해상도보다 더해야합니다. 나는 이것을 위해 jQuery 라이브러리, 특히 jquery.Jcrop.js를 사용한다. 미리보기의 그림에서 볼 수있는 부분은 나중의 목적을 위해 나중에 사용한다. 파일에 잘린 형태로 쓰기 가능해야한다. 캔버스의 기회. 이 스크립트는 잘 작동하지만 문제는 크기가 큰 사진부터 작은 사진으로 크기를 조정하려고 할 때입니다. 각 사진이 브라우저 창에서 높이 500 픽셀로 고정되도록하고 싶습니다. 내가 스크립트의 현재의 모습이 아래에 제시 :HTML5 캔버스 - 미리보기와 이미지의 다른 크기가있는 확장 가능한 섹션
function updatePreview(c)
{
if (parseInt(c.w) > 0)
{
var rx = 200/c.w;
var ry = 300/c.h;
// Show canvas image preview2
var imageObj = $("#target")[0];
var canvas = $("#preview2")[0];
var context = canvas.getContext("2d");
canvas.setAttribute('width', '200');
canvas.setAttribute('height', '300');
//context.scale(2, 2);
context.drawImage(imageObj, c.x, c.y, c.w, c.h, 0, 0,
canvas.width, canvas.height);
$('#preview').css({
width: Math.round(rx * boundx) + 'px',
height: Math.round(ry * boundy) + 'px',
marginLeft: '-' + Math.round(rx * c.x) + 'px',
marginTop: '-' + Math.round(ry * c.y) + 'px'
});
}
};
을 그리고 여기에 스크립트가 첫 번째 미리보기가 CSS를 기반으로
<table>
<tr>
<td>
<img src="http://imgon.net/di-M7Z9.jpg" id="target"
alt="obrazek" height="450"/>
</td>
<td>
<div style="width:200px;height:300px;overflow:hidden;">
<img src="http://imgon.net/di-M7Z9.jpg" id="preview" alt="Preview" />
</div>
<br />
<div>
<canvas id="preview2" style="width:200px;height:300px;"></canvas>
</div>
</td>
</tr>
</table>
를 처리 할 수 있도록하는 간단한 HTML 코드이고 제대로 작동하지만 CSS는 그림의 일부만 다루고 실제로 자르지 않습니다. 대비, 캔버스는 고해상도로 사진을보고 미리보기에는 크기 조정 된 이미지의 세그먼트가 반영되지 않습니다 (나는 섹션 만 확대했습니다). 이것은 Firefox에서 발생합니다. Internet Explorer의 경우 특수 라이브러리이므로 캔버스의 결과는 CSS의 경우와 같습니다. 내 마지막 질문은. 스케일링 된 이미지에 대한 미리보기를 만들고 원래 해상도에 대한 미리보기를 만드는 기능을 어떻게 말할 수 있습니까? 나는 Math.round (rx * boundx)와 같은 변수 c.y와 cx Math.round (ry * boundy) 대신에 대입하려고 시도했지만 올바르지 않습니다. 여기서 스크립트를 볼 수있는 페이지를 제공합니다. agd-brita.pl/mobile2/tutorial.html 도움을 요청합니다. 진심으로 감사드립니다.
나는 완전히 동의합니다. ralImageCrop이 올바른 수식입니다. 오랜 시간이 지난 후에도 나는 이것에왔다. 그러나 실제 이미지 차원이 무엇인지 알아야합니다. 왜냐하면 우리는 폭과 높이 만 이미 이미지를 재조정했다는 것을 알고 있기 때문입니다. 그래서 우리는 실제 이미지 크기를 항상 일정한 크기로 재조정 할 수있는 함수가 필요합니다. – kassprek
내 바이올린 시도해 봤어? –
문서가로드 될 때까지 기다려야합니다. 그렇지 않으면 DOM에서 작업 할 수 없습니다! 바이올린은 당신을 위해 그것을합니다 (왼쪽 막대를보세요).하지만 JS를 $ (document) .ready (...)와 같은 것으로 삽입해야합니다. –