New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for Camera Roll #48

Closed
JoeStanton opened this Issue Feb 6, 2015 · 4 comments

Comments

Projects
None yet
4 participants
@JoeStanton
Contributor

JoeStanton commented Feb 6, 2015

A comment in the image component references support for local assets that are part of the bundle, but also other places such as the camera roll.

* images from local disk, such as the camera roll. Example usage:

Does this mean I can feed in URL's of the scheme assets-library://, or is this not supported? As the component currently reports that the image is not found. If it isn't, would I need to implement it in RCTConvert similarly to Gif support?

eg.

  <Image style={styles.icon} source={ix('assets-library://asset/asset.JPG?id=x&ext=JPG')}  />
@vjeux

This comment has been minimized.

Show comment
Hide comment
@vjeux

vjeux Feb 6, 2015

Contributor

This is supported in our internal version. It's on the list of things that we need to clean up and port to the open source version.

We rushed the announcement and have a lot of things to get out of the doors. Please keep up with us for a few weeks :)

Contributor

vjeux commented Feb 6, 2015

This is supported in our internal version. It's on the list of things that we need to clean up and port to the open source version.

We rushed the announcement and have a lot of things to get out of the doors. Please keep up with us for a few weeks :)

@vjeux

This comment has been minimized.

Show comment
Hide comment
@vjeux

vjeux Feb 6, 2015

Contributor

Actually it is source={{uri: 'assets-library://...'}}, ix is a marker for static assets

Contributor

vjeux commented Feb 6, 2015

Actually it is source={{uri: 'assets-library://...'}}, ix is a marker for static assets

@JoeStanton

This comment has been minimized.

Show comment
Hide comment
@JoeStanton

JoeStanton Feb 6, 2015

Contributor

Awesome, just checking 👍

Contributor

JoeStanton commented Feb 6, 2015

Awesome, just checking 👍

@JoeStanton JoeStanton closed this Feb 7, 2015

dustturtle added a commit to dustturtle/react-native that referenced this issue Jul 6, 2016

JSONKit usage here may cause serious crash hard to debug(I found the …
…crash on simulator, on device I got nothing but app freezed)!

My app has an old version of JSONKit which is still using MRC. I think JSONKit is not needed if system version is available. Kicking out of JSONKit will make react native stronger.
Crash stack:
* thread #11: tid = 0xbd672f, 0x000000010a10edeb imobii-waiqin`jk_encode_add_atom_to_buffer(encodeState=0x00007f9b820a1000, objectPtr=22 key/value pairs) + 16971 at JSONKit.m:2807, name = 'com.facebook.React.JavaScript', stop reason = EXC_BAD_ACCESS (code=EXC_I386_GPFLT)
    frame #0: 0x000000010a10edeb imobii-waiqin`jk_encode_add_atom_to_buffer(encodeState=0x00007f9b820a1000, objectPtr=22 key/value pairs) + 16971 at JSONKit.m:2807
    frame #1: 0x000000010a10ef67 imobii-waiqin`jk_encode_add_atom_to_buffer(encodeState=0x00007f9b820a1000, objectPtr=2 key/value pairs) + 17351 at JSONKit.m:2811
    frame #2: 0x000000010a10ef67 imobii-waiqin`jk_encode_add_atom_to_buffer(encodeState=0x00007f9b820a1000, objectPtr=25 key/value pairs) + 17351 at JSONKit.m:2811
    frame #3: 0x000000010a10e768 imobii-waiqin`jk_encode_add_atom_to_buffer(encodeState=0x00007f9b820a1000, objectPtr=@"3 elements") + 15304 at JSONKit.m:2778
  * frame #4: 0x000000010a10a26a imobii-waiqin`-[JKSerializer serializeObject:options:encodeOption:block:delegate:selector:error:](self=0x00007f9b831fbc80, _cmd="serializeObject:options:encodeOption:block:delegate:selector:error:", object=@"3 elements", optionFlags=0, encodeOption=10, block=0x0000000000000000, delegate=0x0000000000000000, selector=<no value available>, error=domain: class name = NSInvocation - code: 0) + 2250 at JSONKit.m:2876
    frame #5: 0x000000010a109992 imobii-waiqin`+[JKSerializer serializeObject:options:encodeOption:block:delegate:selector:error:](self=JKSerializer, _cmd="serializeObject:options:encodeOption:block:delegate:selector:error:", object=@"3 elements", optionFlags=0, encodeOption=10, block=0x0000000000000000, delegate=0x0000000000000000, selector=<no value available>, error=domain: class name = NSInvocation - code: 0) + 178 at JSONKit.m:2831
    frame #6: 0x000000010a10f700 imobii-waiqin`-[NSArray(self=@"3 elements", _cmd="JSONStringWithOptions:error:", serializeOptions=0, error=domain: class name = NSInvocation - code: 0) JSONStringWithOptions:error:] + 112 at JSONKit.m:2985
    frame #7: 0x000000010ac13c02 imobii-waiqin`_RCTJSONStringifyNoRetry(jsonObject=@"3 elements", error=domain: class name = NSInvocation - code: 0) + 338 at RCTUtils.m:49
    frame #8: 0x000000010ac13990 imobii-waiqin`RCTJSONStringify(jsonObject=@"3 elements", error=0x0000000000000000) + 128 at RCTUtils.m:77
    frame #9: 0x000000010ab5fdfa imobii-waiqin`__27-[RCTContextExecutor setUp]_block_invoke_2(.block_descriptor=<unavailable>, moduleName=@"UIManager") + 218 at RCTContextExecutor.m:363
    frame #10: 0x00000001134495cc CoreFoundation`__invoking___ + 140
    frame #11: 0x000000011344941e CoreFoundation`-[NSInvocation invoke] + 286
    frame #12: 0x000000010db13db3 JavaScriptCore`JSC::ObjCCallbackFunctionImpl::call(JSContext*, OpaqueJSValue*, unsigned long, OpaqueJSValue const* const*, OpaqueJSValue const**) + 451
    frame #13: 0x000000010db13926 JavaScriptCore`JSC::objCCallbackFunctionCallAsFunction(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSValue*, unsigned long, OpaqueJSValue const* const*, OpaqueJSValue const**) + 262
    frame #14: 0x000000010db14bad JavaScriptCore`long long JSC::APICallbackFunction::call<JSC::ObjCCallbackFunction>(JSC::ExecState*) + 573
    frame #15: 0x000000010dade340 JavaScriptCore`JSC::LLInt::setUpCall(JSC::ExecState*, JSC::Instruction*, JSC::CodeSpecializationKind, JSC::JSValue, JSC::LLIntCallLinkInfo*) + 528
    frame #16: 0x000000010dae535d JavaScriptCore`llint_entry + 22900
    frame #17: 0x000000010dadf7d9 JavaScriptCore`vmEntryToJavaScript + 326
    frame #18: 0x000000010d9b1959 JavaScriptCore`JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*) + 169
    frame #19: 0x000000010d9985ad JavaScriptCore`JSC::Interpreter::executeCall(JSC::ExecState*, JSC::JSObject*, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&) + 493
    frame #20: 0x000000010d76cb7e JavaScriptCore`JSC::call(JSC::ExecState*, JSC::JSValue, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&) + 62
    frame #21: 0x000000010d929a55 JavaScriptCore`JSC::callGetter(JSC::ExecState*, JSC::JSValue, JSC::JSValue) + 149
    frame #22: 0x000000010dad49fb JavaScriptCore`llint_slow_path_get_by_id + 2203
    frame #23: 0x000000010dae22f0 JavaScriptCore`llint_entry + 10503
    frame #24: 0x000000010dae5368 JavaScriptCore`llint_entry + 22911
    frame #25: 0x000000010dae52fd JavaScriptCore`llint_entry + 22804
    frame #26: 0x000000010dae5368 JavaScriptCore`llint_entry + 22911
    frame #27: 0x000000010dae5368 JavaScriptCore`llint_entry + 22911
    frame #28: 0x000000010dae52fd JavaScriptCore`llint_entry + 22804
    frame #29: 0x000000010dae5368 JavaScriptCore`llint_entry + 22911
    frame #30: 0x000000010dae5368 JavaScriptCore`llint_entry + 22911
    frame #31: 0x000000010dae5368 JavaScriptCore`llint_entry + 22911
    frame #32: 0x000000010dae552a JavaScriptCore`llint_entry + 23361
    frame #33: 0x000000010dae5368 JavaScriptCore`llint_entry + 22911
    frame #34: 0x000000010dae5368 JavaScriptCore`llint_entry + 22911
    frame #35: 0x000000010dadf7d9 JavaScriptCore`vmEntryToJavaScript + 326
    frame #36: 0x000000010d9b1959 JavaScriptCore`JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*) + 169
    frame #37: 0x000000010d998264 JavaScriptCore`JSC::Interpreter::execute(JSC::ProgramExecutable*, JSC::ExecState*, JSC::JSObject*) + 10404
    frame #38: 0x000000010d7a8786 JavaScriptCore`JSC::evaluate(JSC::ExecState*, JSC::SourceCode const&, JSC::JSValue, WTF::NakedPtr<JSC::Exception>&) + 470
    frame #39: 0x000000010d9f6fb8 JavaScriptCore`JSEvaluateScript + 424
    frame #40: 0x000000010ab6379e imobii-waiqin`__68-[RCTContextExecutor executeApplicationScript:sourceURL:onComplete:]_block_invoke.264(.block_descriptor=<unavailable>) + 414 at RCTContextExecutor.m:589
    frame #41: 0x000000010ab63262 imobii-waiqin`__68-[RCTContextExecutor executeApplicationScript:sourceURL:onComplete:]_block_invoke(.block_descriptor=<unavailable>) + 498 at RCTContextExecutor.m:589
    frame #42: 0x000000010ab63df8 imobii-waiqin`-[RCTContextExecutor executeBlockOnJavaScriptQueue:](self=0x00007f9b832f6040, _cmd="executeBlockOnJavaScriptQueue:", block=0x00007f9b80c92970) + 248 at RCTContextExecutor.m:627
    frame #43: 0x000000010eb1d7a7 Foundation`__NSThreadPerformPerform + 283
    frame #44: 0x0000000113486301 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
    frame #45: 0x000000011347c22c CoreFoundation`__CFRunLoopDoSources0 + 556
    frame #46: 0x000000011347b6e3 CoreFoundation`__CFRunLoopRun + 867
    frame #47: 0x000000011347b0f8 CoreFoundation`CFRunLoopRunSpecific + 488
    frame #48: 0x000000010ab5e41b imobii-waiqin`+[RCTContextExecutor runRunLoopThread](self=RCTContextExecutor, _cmd="runRunLoopThread") + 363 at RCTContextExecutor.m:284
    frame #49: 0x000000010ebc012b Foundation`__NSThread__start__ + 1198
    frame #50: 0x00000001140869b1 libsystem_pthread.dylib`_pthread_body + 131
    frame #51: 0x000000011408692e libsystem_pthread.dylib`_pthread_start + 168
    frame #52: 0x0000000114084385 libsystem_pthread.dylib`thread_start + 13
@srameshr

This comment has been minimized.

Show comment
Hide comment
@srameshr

srameshr Oct 11, 2017

@vjeux I have a catch here. If I load a GIF from asset library with a path like: assets-library://asset....&ext=GIF, then I just end up getting the first frame but not the whole GIF. How do I get it as a GIF image so I can display it as a playing GIF with the Image tag.

srameshr commented Oct 11, 2017

@vjeux I have a catch here. If I load a GIF from asset library with a path like: assets-library://asset....&ext=GIF, then I just end up getting the first frame but not the whole GIF. How do I get it as a GIF image so I can display it as a playing GIF with the Image tag.

@facebook facebook locked as resolved and limited conversation to collaborators May 29, 2018

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.