@@ -27,10 +27,11 @@ export default ({
2727 const ctx = canvas . getContext ( "2d" )
2828
2929 const image = new Image ( )
30+ image . crossOrigin = "anonymous"
3031 image . src = imageSrc
3132 image . onload = ( ) => {
32- ctx . width = image . naturalWidth
33- ctx . height = image . naturalHeight
33+ canvas . width = image . naturalWidth
34+ canvas . height = image . naturalHeight
3435 ctx . drawImage ( image , 0 , 0 )
3536 const imageData = ctx . getImageData (
3637 0 ,
@@ -47,47 +48,36 @@ export default ({
4748 if ( ! canvasRef ) return
4849 if ( ! sampleImageData ) return
4950 if ( classPoints . filter ( ( cp ) => cp . cls ) . length < 3 ) return
50- if ( ! mmgc . setImage ) return
51+ if ( ! mmgc . setImageSize ) return
5152 // NEEDS DEBOUNCE
5253 if ( Date . now ( ) < lastTimeMMGCRun . current + 500 ) return
5354 lastTimeMMGCRun . current = Date . now ( )
5455 const context = canvasRef . getContext ( "2d" )
5556
56- console . log ( "got the sample image data and ready to mmgc!" )
57-
5857 if ( ! superPixelsGenerated . current ) {
59- console . log ( "generating super pixels..." )
60- mmgc . setImage (
61- sampleImageData . data ,
62- sampleImageData . width ,
63- sampleImageData . height
64- )
58+ superPixelsGenerated . current = "processing"
59+ mmgc . setImageSize ( sampleImageData . width , sampleImageData . height )
60+ const imageAddress = mmgc . getImageAddr ( )
61+ mmgc . HEAPU8 . set ( sampleImageData . data , imageAddress )
6562 mmgc . computeSuperPixels ( )
66- superPixelsGenerated . current = true
63+ superPixelsGenerated . current = "done"
6764 }
65+ if ( superPixelsGenerated . current !== "done" ) return
6866
69- // mmgc.setClassColor(0, 0xffffffff)
70- // mmgc.setClassColor(1, 0x00000000)
71- console . log ( "generating mask..." )
67+ mmgc . setClassColor ( 0 , 0xff0000ff )
68+ mmgc . setClassColor ( 1 , 0xffff00ff )
69+ mmgc . setClassColor ( 2 , 0xff00ffff )
70+ // mmgc.setVerboseMode(true)
7271 mmgc . clearClassPoints ( )
7372 for ( const classPoint of classPoints ) {
7473 if ( ! classPoint . cls ) continue
7574 if ( classPoint . x < 0 ) continue
76- ///etc...
77- console . log (
78- regionClsList . indexOf ( classPoint . cls ) ,
79- Math . floor ( classPoint . y * sampleImageData . height ) ,
80- Math . floor ( classPoint . x * sampleImageData . width )
81- )
8275 mmgc . addClassPoint (
8376 regionClsList . indexOf ( classPoint . cls ) ,
8477 Math . floor ( classPoint . y * sampleImageData . height ) ,
8578 Math . floor ( classPoint . x * sampleImageData . width )
8679 )
8780 }
88- // mmgc.addClassPoint(0, 100, 125)
89- // mmgc.addClassPoint(1, 10, 10)
90- // mmgc.addClassPoint(1, 240, 300)
9181 mmgc . computeMasks ( )
9282 const maskAddress = mmgc . getColoredMask ( )
9383 const cppImDataUint8 = new Uint8ClampedArray (
@@ -102,9 +92,6 @@ export default ({
10292 sampleImageData . height
10393 )
10494
105- // for (const i = 0; i < cppImDataUint8.length;i++){
106- // sampleImageData.data[i] = cppImDataUint8[i]
107- // }
10895 context . clearRect ( 0 , 0 , sampleImageData . width , sampleImageData . height )
10996 context . putImageData ( maskImageData , 0 , 0 )
11097 } , [
@@ -117,7 +104,7 @@ export default ({
117104 let width = imagePosition . bottomRight . x - imagePosition . topLeft . x
118105 let height = imagePosition . bottomRight . y - imagePosition . topLeft . y
119106 return {
120- // imageRendering: "pixelated",
107+ imageRendering : "pixelated" ,
121108 left : imagePosition . topLeft . x ,
122109 top : imagePosition . topLeft . y ,
123110 width : isNaN ( width ) ? 0 : width ,
0 commit comments