```dart /// import 'dart:async'; /// /// Future<Image> _loadImage(int width, int height) { /// final Completer<Image> completer = Completer<Image>(); /// decodeImageFromPixels( /// Uint8List.fromList(List<int>.filled(width * height * 4, 0xFF)), /// width, /// height, /// PixelFormat.rgba8888, /// // Don't worry about disposing or cloning this image - responsibility /// // is transferred to the caller, and that is safe since this method /// // will not touch it again. /// (Image image) => completer.complete(image), /// ); /// return completer.future; /// } /// /// Future<void> main() async { /// final Image image = await _loadImage(5, 5); /// // Make sure to clone the image, because MyHolder might dispose it /// // and we need to access it again. /// final MyImageHolder holder = MyImageHolder(image.clone()); /// final MyImageHolder holder2 = MyImageHolder(image.clone()); /// // Now we dispose it because we won't need it again. /// image.dispose(); /// /// final PictureRecorder recorder = PictureRecorder(); /// final Canvas canvas = Canvas(recorder); /// /// holder.draw(canvas); /// holder.dispose(); /// /// canvas.translate(50, 50); /// holder2.draw(canvas); /// holder2.dispose(); /// } /// /// class MyImageHolder { /// MyImageLoader(this.image); /// /// final Image image; /// /// void draw(Canvas canvas) { /// canvas.drawImage(image, Offset.zero, Paint()); /// } /// /// void dispose() => image.dispose(); /// } /// ```
``` {"sentences":[{"trans":"정돈된","orig":"neat","backend":10}],"dict":[{"pos":"형용사","terms":["산뜻한","적절한","표현 따위 적절한","싱싱한","균형이 잡힌","솜씨좋은"],"entry":[{"word":"산뜻한","reverse_translation":["neat","sleek","clean","plain","trim","beautiful"],"score":0.033687614},{"word":"적절한","reverse_translation":["proper","right","pertinent","apt","relative","neat"],"score":8.9774455E-4},{"word":"표현 따위 적절한","reverse_translation":["neat"],"score":1.2732725E-4},{"word":"싱싱한","reverse_translation":["animated","zingy","neat"],"score":1.2732725E-4},{"word":"균형이 잡힌","reverse_translation":["well-balanced","balanced","well-made","commensurable","neat","well-rounded"]},{"word":"솜씨좋은","reverse_translation":["neat","mean"]}],"base_form":"neat","pos_enum":3},{"pos":"명사","terms":["축우"],"entry":[{"word":"축우","reverse_translation":["domestic cow","neat"],"score":1.2732725E-4}],"base_form":"neat","pos_enum":1}],"src":"en","spell":{}} ```
``` {"sentences":[{"trans":"나쁜","orig":"bad","backend":10}],"dict":[{"pos":"형용사","terms":["나쁜","심한","해로운","불쾌한","불길한","서투른","몹쓸","부패한","본래 나쁜 것이 더심한","부적당한","건강 상태가 좋지 않은","후회하는","무효인","멋있는"],"entry":[{"word":"나쁜","reverse_translation":["bad","evil","wrong","ill","vicious","foul"],"score":0.33495805},{"word":"심한","reverse_translation":["severe","gross","bad","intense","violent","atrocious"],"score":0.003084857},{"word":"해로운","reverse_translation":["harmful","detrimental","deleterious","bad","baneful","unfriendly"],"score":6.671471E-4},{"word":"불쾌한","reverse_translation":["unpleasant","bad","disagreeable","putrid","slimy","yucky"],"score":5.5308436E-4},{"word":"불길한","reverse_translation":["ominous","sinister","unlucky","bad","inauspicious","evil"],"score":3.3546262E-4},{"word":"서투른","reverse_translation":["bad","ill","unskilful","inapt","pathetic","maladroit"],"score":1.10623834E-4},{"word":"몹쓸","reverse_translation":["bad","foul"],"score":5.5625158E-5},{"word":"부패한","reverse_translation":["putrid","bad","ulcerous","foul"],"score":3.0242873E-5},{"word":"본래 나쁜 것이 더심한","reverse_translation":["bad"]},{"word":"부적당한","reverse_translation":["ill-suited","improper","inadequate","inappropriate","inept","bad"]},{"word":"건강 상태가 좋지 않은","reverse_translation":["bad"]},{"word":"후회하는","reverse_translation":["regretful","penitent","penitentiary","sorrowful","bad"]},{"word":"무효인","reverse_translation":["bad"]},{"word":"멋있는","reverse_translation":["beautiful","knowing","bad"]}],"base_form":"bad","pos_enum":3},{"pos":"부사","terms":["나쁘게"],"entry":[{"word":"나쁘게","reverse_translation":["badly","bad","ill","wrong","wickedly","evil"],"score":0.0037210477}],"base_form":"bad","pos_enum":4},{"pos":"명사","terms":["나쁜 것","입찰의 과거"],"entry":[{"word":"나쁜 것","reverse_translation":["bad","misdoing"],"score":0.0020230985},{"word":"입찰의 과거","reverse_translation":["bad"]}],"base_form":"bad","pos_enum":1}],"src":"en","spell":{}} ```
``` {"sentences":[{"trans":"bdjsnf","orig":"bdjsnf","backend":3,"model_specification":[{}],"translation_engine_debug_info":[{"model_tracking":{"checkpoint_md5":"821d96072c2d58d8970e76f526b0f6b8","launch_doc":"en_ko_2022q2.md"}}]}],"src":"en","spell":{}} {"sentences":[{"trans":"바다","orig":"bada","backend":3,"model_specification":[{}],"translation_engine_debug_info":[{"model_tracking":{"checkpoint_md5":"821d96072c2d58d8970e76f526b0f6b8","launch_doc":"en_ko_2022q2.md"}}]}],"src":"en","spell":{}} {"sentences":[{"trans":"박쥐","orig":"bats","backend":3,"model_specification":[{}],"translation_engine_debug_info":[{"model_tracking":{"checkpoint_md5":"821d96072c2d58d8970e76f526b0f6b8","launch_doc":"en_ko_2022q2.md"}}]}],"src":"en","spell":{}} {"sentences":[{"trans":"노크","orig":"knocked","backend":3,"model_specification":[{}],"translation_engine_debug_info":[{"model_tracking":{"checkpoint_md5":"821d96072c2d58d8970e76f526b0f6b8","launch_doc":"en_ko_2022q2.md"}}]}],"src":"en","spell":{}} ```
--web-renderer canvaskit --web-renderer html https://www.linktag.org/link/d878f64d898d4319aa1971808289bf40
https://www.google.com/imgres?imgurl=http%3A%2F%2Fpimage.design.co.kr%2Fcms%2Fcontents%2Fdirect%2Finfo_id%2F45293%2F1220951440151.jpg&imgrefurl=http%3A%2F%2Fmdesign.designhouse.co.kr%2Farticle%2Farticle_view%2F101%2F45293&tbnid=FYFtjJWD6XAF_M&vet=12ahUKEwix9J-56vz6AhVK_JQKHbF3A-0QMygAegQIARAj..i&docid=2ViGFoFNFvzJ_M&w=350&h=415&q=%EB%8B%A4%ED%81%AC%ED%95%9C%20%EC%9D%8C%EC%82%B0%ED%95%9C%20%EC%96%BC%EA%B5%B4&ved=2ahUKEwix9J-56vz6AhVK_JQKHbF3A-0QMygAegQIARAj
https://www.google.com/imgres?imgurl=https%3A%2F%2Focc-0-299-990.1.nflxso.net%2Fdnm%2Fapi%2Fv6%2F9pS1daC2n6UGc3dUogvWIPMR_OU%2FAAAABV3_yPYu-onujJ_V1nIOKXYF-MOYl1sXYp6icuMKtLGgCsFLA8zcwWTBJjCp4gAIEm3mUSosgqpgD8C-0mSdogIHGn1J7bAqxGYunocQ00HdIAV3EpPmpNko.jpg%3Fr%3Dec7&imgrefurl=https%3A%2F%2Fwww.netflix.com%2Fkr%2Ftitle%2F80100172&tbnid=r-LDE9HhwDJ8IM&vet=12ahUKEwix9J-56vz6AhVK_JQKHbF3A-0QMygFegQIARAt..i&docid=AAeylD3DMsq8mM&w=448&h=252&q=%EB%8B%A4%ED%81%AC%ED%95%9C%20%EC%9D%8C%EC%82%B0%ED%95%9C%20%EC%96%BC%EA%B5%B4&ved=2ahUKEwix9J-56vz6AhVK_JQKHbF3A-0QMygFegQIARAt
레이어 테두리 2 https://hydroponicglass.tistory.com/200
Drawing a single pixel. http://gimpchat.com/viewtopic.php?f=8&t=6473
128x4=512 프레임 레이아웃 추가사항 512+3?=515
마에다 디자인 https://whats.maeda-design-room.net/
무료 도트 https://dotown.maeda-design-room.net/
이 방법대로 했더니 깨짐 없이 깔끔하게 구멍을 뚫을 수 있었네요. :+1: