Guest User

Untitled

a guest
May 24th, 2018
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.81 KB | None | 0 0
  1. patch-package
  2. --- a/node_modules/@terrylinla/react-native-sketch-canvas/index.js
  3. +++ b/node_modules/@terrylinla/react-native-sketch-canvas/index.js
  4. @@ -8,6 +8,7 @@ import ReactNative, {
  5. ViewPropTypes,
  6. } from 'react-native'
  7. import SketchCanvas from './src/SketchCanvas'
  8. +import resolveAssetSource from "react-native/Libraries/Image/resolveAssetSource"
  9.  
  10. export default class extends React.Component {
  11. static propTypes = {
  12. @@ -121,6 +122,14 @@ export default class extends React.Component {
  13. this._sketchCanvas.addPath(data)
  14. }
  15.  
  16. + addImage(source) {
  17. + const thisSource = resolveAssetSource(source) || {
  18. + uri: undefined,
  19. + width: undefined,
  20. + height: undefined
  21. + }
  22. + this._sketchCanvas.addImage(thisSource)
  23. + }
  24. deletePath(id) {
  25. this._sketchCanvas.deletePath(id)
  26. }
  27. --- a/node_modules/@terrylinla/react-native-sketch-canvas/ios/RNSketchCanvas/RNSketchCanvas/RNSketchCanvas.h
  28. +++ b/node_modules/@terrylinla/react-native-sketch-canvas/ios/RNSketchCanvas/RNSketchCanvas/RNSketchCanvas.h
  29. @@ -16,5 +16,6 @@
  30. - (void)clear;
  31. - (void)saveImageOfType: (NSString*) type withTransparentBackground: (BOOL) transparent;
  32. - (NSString*) transferToBase64OfType: (NSString*) type withTransparentBackground: (BOOL) transparent;
  33. +-(void)addImage:(UIImage *) image;
  34.  
  35. @end
  36. --- a/node_modules/@terrylinla/react-native-sketch-canvas/ios/RNSketchCanvas/RNSketchCanvas/RNSketchCanvas.m
  37. +++ b/node_modules/@terrylinla/react-native-sketch-canvas/ios/RNSketchCanvas/RNSketchCanvas/RNSketchCanvas.m
  38. @@ -5,6 +5,7 @@
  39. #import <React/RCTEventDispatcher.h>
  40. #import <React/RCTView.h>
  41. #import <React/UIView+React.h>
  42. +#import <React/RCTImageSource.h>
  43.  
  44. @implementation RNSketchCanvas
  45. {
  46. @@ -14,6 +15,7 @@ @implementation RNSketchCanvas
  47. NSArray *_currentPoints;
  48.  
  49. CAShapeLayer* _layer;
  50. + CALayer* _imageLayer;
  51. RNSketchCanvasDelegate *delegate;
  52. }
  53.  
  54. @@ -37,10 +39,18 @@ -(void)layoutSubviews {
  55. _layer.frame = bounds;
  56. _layer.delegate = delegate;
  57. _layer.contentsScale = [UIScreen mainScreen].scale;
  58. -
  59. + _imageLayer = [CALayer layer];
  60. + _imageLayer.frame = _layer.frame;
  61. + _imageLayer.contentsScale = _layer.contentsScale;
  62. + [self.layer addSublayer: _imageLayer];
  63. [self.layer addSublayer: _layer];
  64. }
  65. }
  66. +-(void)addImage:(UIImage *) image {
  67. + RCTExecuteOnMainQueue(^{
  68. + _imageLayer.contents = (id)image.CGImage;
  69. + });
  70. +}
  71.  
  72. - (void)newPath:(int) pathId strokeColor:(UIColor*) strokeColor strokeWidth:(int) strokeWidth {
  73. if (_currentPath) {
  74. @@ -133,7 +143,7 @@ - (NSString*) transferToBase64OfType: (NSString*) type withTransparentBackground
  75. CGContextSetRGBFillColor(context, 1.0f, 1.0f, 1.0f, 1.0f);
  76. CGContextFillRect(context, CGRectMake(0, 0, rect.size.width, rect.size.height));
  77. }
  78. - [_layer renderInContext:context];
  79. + [self.layer renderInContext:context];
  80. UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
  81. UIGraphicsEndImageContext();
  82. if ([type isEqualToString: @"jpg"]) {
  83. --- a/node_modules/@terrylinla/react-native-sketch-canvas/ios/RNSketchCanvas/RNSketchCanvas/RNSketchCanvasManager.m
  84. +++ b/node_modules/@terrylinla/react-native-sketch-canvas/ios/RNSketchCanvas/RNSketchCanvas/RNSketchCanvasManager.m
  85. @@ -3,6 +3,8 @@
  86. #import <React/RCTEventDispatcher.h>
  87. #import <React/RCTView.h>
  88. #import <React/UIView+React.h>
  89. +#import <React/RCTImageSource.h>
  90. +#import <React/RCTImageLoader.h>
  91.  
  92. @implementation RNSketchCanvasManager
  93.  
  94. @@ -85,4 +87,18 @@ - (UIView *)view
  95. callback(@[[NSNull null], [self.sketchCanvasView transferToBase64OfType: type withTransparentBackground: transparent]]);
  96. }
  97.  
  98. +RCT_EXPORT_METHOD(addImage: (RCTImageSource *) imageSource)
  99. +{
  100. + RCTImageLoaderCompletionBlock completionHandler = ^(NSError *error, UIImage *loadedImage) {
  101. + [self.sketchCanvasView addImage:loadedImage];
  102. + };
  103. + [self.bridge.imageLoader loadImageWithURLRequest:imageSource.request
  104. + size:imageSource.size
  105. + scale:imageSource.scale
  106. + clipped:NO
  107. + resizeMode:RCTResizeModeRepeat
  108. + progressBlock:nil
  109. + partialLoadBlock:nil
  110. + completionBlock:completionHandler];
  111. +}
  112. @end
  113. --- a/node_modules/@terrylinla/react-native-sketch-canvas/src/SketchCanvas.js
  114. +++ b/node_modules/@terrylinla/react-native-sketch-canvas/src/SketchCanvas.js
  115. @@ -130,6 +130,9 @@ class SketchCanvas extends React.Component {
  116. NativeModules.SketchCanvasModule.transferToBase64(this._handle, imageType, transparent, callback)
  117. }
  118. }
  119. + addImage(source) {
  120. + SketchCanvasManager.addImage(source)
  121. + }
  122.  
  123. componentWillMount() {
  124. this.panResponder = PanResponder.create({
Add Comment
Please, Sign In to add comment