mardi 7 avril 2015

Can't draw base64 to canvas

I am facing with the problem of showing the uploaded profile pic. I use picedit.js lib for uploading ui. Uploading profile pic is everying ok. But the problem is when i want to show uploaded profile pic, it can't. I got the base64 img from the server and draw it into the canvas. No exception is occured and cant't see the profile pic. If i assign the image.src by manually and draw it on another canvas(not canvas that uses picedit). Is there a problem with picedit.js lib.


Here is my controller.js



var canvas = document.getElementById("mycanvas");
var ctx = canvas.getContext("2d");
var image = new Image();

image.onload = function() {
ctx.drawImage(image, 0, 0);
};
image.src = $scope.user.profilePic;


Here is my page



<div style="margin: 10% auto 0 auto; display: table;">
<!-- begin_picedit_box -->
<div class="picedit_box">
<!-- Placeholder for messaging -->
<div class="picedit_message">
<span class="picedit_control ico-picedit-close"
data-action="hide_messagebox"></span>
<div></div>
</div>
<!-- Picedit navigation -->
<div class="picedit_nav_box picedit_gray_gradient">
<div class="picedit_pos_elements"></div>
<div class="picedit_nav_elements">


<!-- Picedit button element end -->
<!-- Picedit button element begin -->
<div class="picedit_element">
<span
class="picedit_control picedit_action ico-picedit-insertpicture"
title="Crop" data-action="crop_open"></span>
</div>
<!-- Picedit button element end -->
<!-- Picedit button element begin -->
<div class="picedit_element">
<span class="picedit_control picedit_action ico-picedit-redo"
title="Rotate"></span>
<div class="picedit_control_menu">
<div
class="picedit_control_menu_container picedit_tooltip picedit_elm_1">
<label> <span>90° CW</span> <span
class="picedit_control picedit_action ico-picedit-redo"
data-action="rotate_cw"></span>
</label> <label> <span>90° CCW</span> <span
class="picedit_control picedit_action ico-picedit-undo"
data-action="rotate_ccw"></span>
</label>
</div>
</div>
</div>
<!-- Picedit button element end -->
<!-- Picedit button element begin -->
<div class="picedit_element">
<span
class="picedit_control picedit_action ico-picedit-arrow-maximise"
title="Resize"></span>
<div class="picedit_control_menu">
<div
class="picedit_control_menu_container picedit_tooltip picedit_elm_2">
<label> <span
class="picedit_control picedit_action ico-picedit-checkmark"
data-action="resize_image"></span> <span
class="picedit_control picedit_action ico-picedit-close"
data-action=""></span>
</label> <label> <span>Width (px)</span> <input type="text"
class="picedit_input" data-variable="resize_width"
value="0">
</label> <label class="picedit_nomargin"> <span
class="picedit_control ico-picedit-link"
data-action="toggle_button"
data-variable="resize_proportions"></span>
</label> <label> <span>Height (px)</span> <input
type="text" class="picedit_input"
data-variable="resize_height" value="0">
</label>
</div>
</div>
</div>
<!-- Picedit button element end -->
</div>
</div>
<!-- Picedit canvas element -->
<div class="picedit_canvas_box">
<div class="picedit_painter" >
<canvas id="mycanvasweb"></canvas>
</div>
<div class="picedit_canvas">
<canvas id="mycanvas"></canvas>
</div>
<div class="picedit_action_btns active">
<div class="picedit_control ico-picedit-picture"
data-action="load_image"></div>
<div class="picedit_control ico-picedit-camera"
data-action="camera_open"></div>
<div class="center">or copy/paste image here</div>
</div>

</div>
<!-- Picedit Video Box -->
<div class="picedit_video">
<video autoplay></video>
<div class="picedit_video_controls">
<span
class="picedit_control picedit_action ico-picedit-checkmark"
data-action="take_photo"></span> <span
class="picedit_control picedit_action ico-picedit-close"
data-action="camera_close"></span>
</div>
</div>
<!-- Picedit draggable and resizeable div to outline cropping boundaries -->
<div class="picedit_drag_resize">
<div class="picedit_drag_resize_canvas"></div>
<div class="picedit_drag_resize_box">
<div class="picedit_drag_resize_box_corner_wrap">
<div class="picedit_drag_resize_box_corner"></div>
</div>
<div class="picedit_drag_resize_box_elements">
<span
class="picedit_control picedit_action ico-picedit-checkmark"
data-action="crop_image"></span> <span
class="picedit_control picedit_action ico-picedit-close"
data-action="crop_close"></span>
</div>
</div>
</div>
</div>
<!-- end_picedit_box -->
</div>


When i assign base64 to image.src by manually like image.src= "base64.....", and added to mycanvas1, it is ok.



<div>
<canvas id="mycanvas1"></canvas>
</div>


But nothing is ok with mycanvas and mycanvasweb. Help me, I am new to angular.


Aucun commentaire:

Enregistrer un commentaire