رفتن به مطلب
برای استفاده از انجمن و عضـویت کلیک کنید.

AnswerCenter

مرکز پاسخگویی به سوالات برنامه نویسی

درخواست سفارش پروژه

اطلاعیه

کاربر گرامی

به انجمن برنامه نویسی AnswerCenter.ir خوش آمدید

 برای استفاده از تمامی امکانات سایت لطفا در انجمن عضو شوید


محمدرضا شاهپیری

کتابخانه کاربردی PersianPhotoCropper (انتخاب و برش حرفه ای عکس)

پست های پیشنهاد شده

محمدرضا شاهپیری    3,828

مدیر کل سایت

با سلام خدمت دوستان.

نسخه 3 کتابخانه منتشر شد. 

***دوستان کتابخانه یه سری تغییرات کرده که مهمترین تغییر کاهش حجم به کتابخانه از 2.5 مگابایت به 400 کیلوبایت و تغییر روش برش عکس هست بقیه تغییرات به صورت زیر هست:

1: بعد از انتخاب عکس متد onImagePicked اجرا میشه که خروجیش لیست هست

Private Sub pr_onImagePicked(Images As List)
End Sub

2:بعد از برش عکس متد onImageCroped اجرا میشه که خروجی اون bitmap هست. قبلا آدرس عکس بوده. تو نسخه جدید برعد از برش بدون اینکه عکس تو حافظه ذخیره شه بیتمپ اون برگردونده میشه.

Private Sub pr_onImageCroped(succes As Boolean,Result As Object)
	If succes Then
		Dim btmmap As Bitmap=Result
		ImageView1.Bitmap=btmmap
		Else
		Log("err::"&Result)
	End If
End Sub

3: امکان تعیین فونت و اندازه متن برای تایتل و دکمه تایید در صفحه انتخاب عکس.

Dim picoption As PickOption
	picoption.titleFont("irsanc.ttf").titleTextSize(14)
	

 

=========================================================================================

نسخه 2 اضافه شد. تغییرات بسیار مهمی صورت گرفته توی این نسخه.

1: استفاده از ریسایکلرویو برای نمایش عکسها.

2: اضافه شدن امکان گرفتن عکس با دوربین گوشی

3: امکان شخصی سازی محیط انتخاب عکس

==================================================================================================================

با یک کتابخانه بسیار کاربردی دیگه در خدمت دوستان بیسیک کار هستیم:Laie_60B:

خیلی از دوستان رو من مشاهده کردم که با انتخاب و مخصوصا برش عکس تو برنامه هاشون مشکل داشتن. و از طرفی خود بیسیک هم به اون صورت کتابخونه ای رو برای این کار نداره.

لذا تصمیم بر این شد که یک کتابخونه جامع برای دوستان آماده کنم که امیدوارم مورد پسند واقع شه.

 کتابخانه PersianPhotoCropper کتابخانه ای بسیار قوی  جهت انتخاب عکس از گالری و برش آن به صورت کاملا حرفه ای می باشد. این کتابخونه از کدهای نیتیو ++C جهت پردازش عکس استفاده میکنه که سرعت بسیار  بالایی داره. و از ویژگی های مهم کتابخونه داشتن گالری داخلی برای انتخاب عکس به صورت تکی و چندتایی هست. و یک کراپر حرفه ای برای برش عکس برای دوستان تعبیه شده که به راحتی بتونن عکس رو با آپشنهای  زیاد و برش بدن و اونو ذخیره کنن.

 لینک فروشگاه 

 

لینک آموزش کار با کتابخانه.

پیش نمایش

ezgif.com-resize.gif

 

  • پسندیدن 4
  • تشکر 3

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
msd313    62

کاربر رو به رشد

دمت گرم مهندس
اگه خواستی یه مطلب کامل و جامع ساخت کتابخانه از صفر تا صد رو تهیه کن بنده خودم هیچی نمیدونم راجع به ساخت کتابخونه
نیست که تو دم به دقیقه داری کتابخونه تولید میکنی! واسه همون گفتم

  • ذوق زده 1

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
smr    2

کاربر عادی

سلام

ضمن تشکر از ارائه این کتابخانه ارزشمند یه اشکال خیلی بزرگ داره که من نمیدونم چطوری رفعش کنم

وقتی یه عکس را کراپ میکنم به شدت کیفیت عکس برش خورده کم میشه و همچنین حجم اون نیز میاد پایین !!!

چطوری باید کیفیتش را تنظیم کنم؟

من حتی از سورس خودتون هم استفاده کرده اما بازم هم همین مشکل وجود داره لطفا راهنمائی بفرمائید.

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
majid08    266

کاربر نیمه فعال

سلام

بسیار عالی

فقط یه سوال

برای نمایش دادن عکس ها موقع انتخاب از چی استفاده کردین(منظورم گلاید هست یا چیز دیگه ای) چون من یه چنتا کتابخونه پیدا کردم برای انتخاب عکس به صورت چنتایی از گالری ولی همه با گلاید مشکل داشتن

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
محمدرضا شاهپیری    3,828

مدیر کل سایت

در 11 ساعت قبل، smr گفته است :

سلام

ضمن تشکر از ارائه این کتابخانه ارزشمند یه اشکال خیلی بزرگ داره که من نمیدونم چطوری رفعش کنم

وقتی یه عکس را کراپ میکنم به شدت کیفیت عکس برش خورده کم میشه و همچنین حجم اون نیز میاد پایین !!!

چطوری باید کیفیتش را تنظیم کنم؟

من حتی از سورس خودتون هم استفاده کرده اما بازم هم همین مشکل وجود داره لطفا راهنمائی بفرمائید.

کیفیت عکس خروجی بستگی به تنظیمات خودتون داره عزیز. تنظیمات زیر خروجی با کیفیت میده.

Dim croption As CropOption
	croption.Initialize
	croption.withFreeStyleCropEnabled.WithAspectRatioX(1).WithAspectRatioY(1).withShowCropFrame.withShowCropGrid.WithMaxResultSizeX(400).WithMaxResultSizeY(400)
croption.withCompressionQuality(100).withCompressionFormat(croption.CompressFormat_PNG).withToolbarColor(Colors.Red)
	

 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
محمدرضا شاهپیری    3,828

مدیر کل سایت

در 2 ساعت قبل، majid08 گفته است :

سلام

بسیار عالی

فقط یه سوال

برای نمایش دادن عکس ها موقع انتخاب از چی استفاده کردین(منظورم گلاید هست یا چیز دیگه ای) چون من یه چنتا کتابخونه پیدا کردم برای انتخاب عکس به صورت چنتایی از گالری ولی همه با گلاید مشکل داشتن

از پیکاسو برای لود عکسها موقه انتخاب استفاده شده. منظور کتابخونه های رپ شده نیست عزیز. کتابخونه اوریجینال به صورت داخلی تو خود کتابخونه استفاده شده.

  • تشکر 1

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
mykimia    12

کاربر عادی

با سلام

پروژه مثال شما روی اندروید 4 تست زدم. اجرای کراپ با این خطاها مواجه میشه و اصلا نمیره برای نمایش عکس انتخاب شده و کراپ

java.lang.RuntimeException: Unable to start activity ComponentInfo{b4a.exampleeee/com.yalantis.ucrop.UCropActivity}: android.content.res.Resources$NotFoundException: File res/drawable/abc_vector_test.xml from drawable resource ID #0x7f020052

 

Caused by: android.content.res.Resources$NotFoundException: File res/drawable/abc_vector_test.xml from drawable resource ID #0x7f020052

 

Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #17: invalid drawable tag vector

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
محمدرضا شاهپیری    3,828

مدیر کل سایت

در در 1398/03/29, 15:42:58، mykimia گفته است :

 

مشکل رفع شد. نسخه جدید رو دریافت کنید.

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
mehdi.m    157

کاربر رو به رشد

سلام کتابخونه عالی هست

فقط یه مشکل کوچیک داره اونم این که نمیشه از قبل با کد تعیین کرد که عکس به چه صورت برش داده بشه (هر چند تولبار پایین هست همون 1:1 - 3:4 - 3:2 - 16:9 که کاربر باید انتخاب کنه)

چون بسته به نیاز برنامه مثلا عکس لازمه که به صورت 1:1 وارد بشه یعنی وقتی داره عکس رو برش میده عکس به صورت مربعی (طول و عرض مساوی ) برش داده بشه

اگه این متود و فونت تایتل بهش اضافه بشه عالیه

البته اگه امکانش هست

با تشکر از آقای شاهپیری

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
mehdi.m    157

کاربر رو به رشد

سلام مجدد

جناب شاهپیری بی زحمت اگه امکانش هست راه حلی برای این خطا بفرمایید هر چند خطای داخلی لیب هست

در 19 ساعت قبل، mehdi.m گفته است :

این خطا هنگام انتخاب عکس داده میشه مواقعی

image.png.72b6e516d8481d7cd75b5b4cc084cfdb.png

همچنان منتظر پاسخ شما هستم

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
محمدرضا شاهپیری    3,828

مدیر کل سایت

در ۱ ساعت قبل، mehdi.m گفته است :

 

سورس یا کدی که استفاده کردین رو بزارین. تا حالا همچین موردی مشاهده نشده.

 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
mehdi.m    157

کاربر رو به رشد

در 22 دقیقه قبل، محمدرضا شاهپیری گفته است :

سورس یا کدی که استفاده کردین رو بزارین. تا حالا همچین موردی مشاهده نشده.

 

کد خاصی نذاشتم 

اگه دقت کنین به خطا از ریسایکلر داخلی لیب هست که موقع کلیک این خطا رو میده روی پوزیشن

توی ریسایکلر های دیگه ای که استفاده کردم همچین خطایی میومد که با یک try حل میشد

ولی الان به on_itemClick کتابخونه که دسترسی ندارم که بخوام try بزارم درسته؟

 

همه کدی که استفاده کردم

Dim croption As CropOption
croption.Initialize
croption.withCompressionFormat(croption.CompressFormat_JPEG) _
.withToolbarTitle("برش عکس ").withToolbarColor(Colors.White).withToolbarWidgetColor(colors.White) _
.withActiveWidgetColor(colors.red).withRootViewBackgroundColor(Colors.White).withLogoColor(0xFFE6E6E6).withStatusBarColor(colors.red).withCircleDimmedLayer.withFreeStyleCropEnabled
prcrop.pickAndCrop(False,File.DirDefaultExternal&"/croped.jpg",croption)	

 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
محمدرضا شاهپیری    3,828

مدیر کل سایت

در 15 ساعت قبل، mehdi.m گفته است :

 

 

لطفا از جایی که خطا رخ میده اسکرین یا ترجیحا ویدئو بزارید تا بررسی شه. و هیچ کد دیگه ای به غیر از کدهای انتخاب یا برش استفاده نکنید تا مشخص بشه که مشکل از کتابخونه هست یا خیر

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
mehdi.m    157

کاربر رو به رشد

در 3 ساعت قبل، محمدرضا شاهپیری گفته است :

لطفا از جایی که خطا رخ میده اسکرین یا ترجیحا ویدئو بزارید تا بررسی شه. و هیچ کد دیگه ای به غیر از کدهای انتخاب یا برش استفاده نکنید تا مشخص بشه که مشکل از کتابخونه هست یا خیر

این خطا موقعی هست که میره به انتخابگر عکس که مال خود کتابخونه هست (همون گرید ویو ) بعد یکی از عکسا رو که کلیک میکنم این ارور میده (خطا مشخصه که از اون لیست هست یه try بزارید توی رویداد کلیک اون ریسایکلر درست میشه)

البته بعضی مواقع میاد این ارور

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
محمدرضا شاهپیری    3,828

مدیر کل سایت

در 10 ساعت قبل، mehdi.m گفته است :

این خطا موقعی هست که میره به انتخابگر عکس که مال خود کتابخونه هست (همون گرید ویو ) بعد یکی از عکسا رو که کلیک میکنم این ارور میده (خطا مشخصه که از اون لیست هست یه try بزارید توی رویداد کلیک اون ریسایکلر درست میشه)

البته بعضی مواقع میاد این ارور

در حال بررسی مشکل هستیم عزیز. احتمالا مشکل از گریدویو هست که موقه لود جا میمونه. لودر رو به ریسایکلرویو تغییر میدیم انشالا که موردی نباشه دیگه

  • پسندیدن 1

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
smr    2

کاربر عادی

سلام

وقتی میخوام از دوربین گوشی استفاده کنم خطای زیر را میده البته اگه targetSdkVersion را روی 22 بزارم مشکل حل میشه اما اگه روی 26 بزارم با اینکه دسترسی هم داده شده بازم خطا میده مشکل را چجوری مرتفع کنم

 

 

** Activity (register_user) Pause, UserClosed = false **
** Activity (register_user) Resume **
** Activity (register_user) Pause, UserClosed = false **
android.os.FileUriExposedException: file:///storage/emulated/0/Pictures/IMG_20190711_210528.jpg exposed beyond app through ClipData.Item.getUri()
    at android.os.StrictMode.onFileUriExposed(StrictMode.java:1978)
    at android.net.Uri.checkFileUriExposed(Uri.java:2371)
    at android.content.ClipData.prepareToLeaveProcess(ClipData.java:966)
    at android.content.Intent.prepareToLeaveProcess(Intent.java:10902)
    at android.content.Intent.prepareToLeaveProcess(Intent.java:10887)
    at android.app.Instrumentation.execStartActivity(Instrumentation.java:1667)
    at android.app.Activity.startActivityForResult(Activity.java:4689)
    at android.support.v4.app.BaseFragmentActivityJB.startActivityForResult(BaseFragmentActivityJB.java:50)
    at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:79)
    at android.support.v4.app.ActivityCompatJB.startActivityForResult(ActivityCompatJB.java:30)
    at android.support.v4.app.ActivityCompat.startActivityForResult(ActivityCompat.java:146)
    at android.support.v4.app.FragmentActivity.startActivityFromFragment(FragmentActivity.java:937)
    at android.support.v4.app.FragmentActivity$HostCallbacks.onStartActivityFromFragment(FragmentActivity.java:1047)
    at android.support.v4.app.Fragment.startActivityForResult(Fragment.java:959)
    at android.support.v4.app.Fragment.startActivityForResult(Fragment.java:948)
    at com.persian.photoview.imagepicker.AndroidImagePicker.takePicture(AndroidImagePicker.java:403)
    at com.persian.photoview.imagepicker.ui.ImagesGridFragment$ImageGridAdapter$1.onClick(ImagesGridFragment.java:271)
    at android.view.View.performClick(View.java:7352)
    at android.view.View.performClickInternal(View.java:7318)
    at android.view.View.access$3200(View.java:846)
    at android.view.View$PerformClick.run(View.java:27800)
    at android.os.Handler.handleCallback(Handler.java:873)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:214)
    at android.app.ActivityThread.main(ActivityThread.java:7050)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965)

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
محمدرضا شاهپیری    3,828

مدیر کل سایت

در در 20 تیر 1398 در 21:11، smr گفته است :

سلام

وقتی میخوام از دوربین گوشی استفاده کنم خطای زیر را میده البته اگه targetSdkVersion را روی 22 بزارم مشکل حل میشه اما اگه روی 26 بزارم با اینکه دسترسی هم داده شده بازم خطا میده مشکل را چجوری مرتفع کنم

دقت داشته باشین که منیفست باید کد زیر رو داشته باشه.

<provider
     android:name="android.support.v4.content.FileProvider"
      android:authorities="$PACKAGE$.provider"
      android:exported="false"
      android:grantUriPermissions="true">
      <meta-data
          android:name="android.support.FILE_PROVIDER_PATHS"
         android:resource="@xml/provider_paths" />
 </provider>

 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
fun_code    149

کاربر رو به رشد

در در 4 آذر 1397 در 23:33، محمدرضا شاهپیری گفته است :

ا یک کتابخانه بسیار کاربردی

سلام و عرض ادب

ممنون میشیم کاری کنید که بتونیم فونت متن ها رو هم بسته به فونت برناممون تغییر بدیم.

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
fun_code    149

کاربر رو به رشد

در در 4 آذر 1397 در 23:33، محمدرضا شاهپیری گفته است :

نسخه 2 اضافه شد.

سلام استاد

این کتابخانه با کتابخانه picasso تداخل داره و زمان کامپایل ارور زیر رو نمایش میده.

لطفا برای رفعش راهنماییم کنید:

B4A Version: 9.01.2
Java Version: 9
Parsing code.    (0.09s)
Building folders structure.    (0.31s)
Compiling code.    (0.11s)
Compiling layouts code.    (0.02s)
Organizing libraries.    (0.00s)
Generating R file.    (2.36s)
Compiling generated Java code.    (4.88s)
Convert byte code - optimized dex.    Error
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/squareup/picasso/Cache;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/squareup/picasso/Cache$1;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/squareup/picasso/LruCache;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/squareup/picasso/Picasso;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/squareup/picasso/Picasso$1;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/squareup/picasso/Picasso$Builder;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/squareup/picasso/Picasso$Listener;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/squareup/picasso/PicassoDrawable;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/squareup/picasso/Request;
UNEXPECTED TOP-LEVEL EXCEPTION:
java.lang.RuntimeException: Translation has been interrupted
	at com.android.dx.command.dexer.Main.processAllFiles(Main.java:696)
	at com.android.dx.command.dexer.Main.runMonoDex(Main.java:315)
	at com.android.dx.command.dexer.Main.runDx(Main.java:293)
	at com.android.dx.command.dexer.Main.main(Main.java:249)
	at com.android.dx.command.Main.main(Main.java:94)
Caused by: java.lang.InterruptedException: Too many errors
	at com.android.dx.command.dexer.Main.processAllFiles(Main.java:688)
	... 4 more

 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به عنوان یک لینک به جای

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.


×
×
  • جدید...