در این سوال از شما میخواهیم، آدرس ```url``` یک تصویر را از کاربر، در ``input`` موجود برروی صفحه دریافت کنید و با لمس دکمهی ```Crop Image```، تصویر موردنظر را دریافت و ``crop`` کنید. همچنین با لمس دکمهی ``Get base64``، عکسی که در مرحله قبل ``crop`` شده، با فرمت ``base64`` در صفحهای دیگر نشان دادهمیشود.
[فایل اولیه را از اینجا دانلود کنید](https://blog.quera.ir/wp-content/uploads/2018/10/imageEdit-contestant.zip)
![](https://blog.quera.ir/wp-content/uploads/2018/10/ss.png)
## لیست وظایف
+ پیادهسازی رابط کاربری مطابق با عکسهای بالا
+ دریافت عکس از آدرس وارد شده
+ ``crop`` کردن عکس
+ نمایش عکس ``crop`` شده در فرمت ``Base64``
برای ``crop`` کردن عکسها، **حتما** مقادیر ``cropData`` را **دقیقا** برابر با مقادیر زیر قرار دهید:
```
cropData = {
offset: { x: 0, y: 0 },
size: { width: 100, height: 100 },
resizeMode: 'contain'
};
```
## راهنمایی:
درصورتی که برای ``crop`` کردن عکس به راهنمایی نیاز دارید، به [ این صفحه ](https://facebook.github.io/react-native/docs/imageeditor) رجوع کنید.
## نکات حیاتی:
+ برای جلوگیری از بروز خطای حجم فایل ارسالی، فقط پوشه `src` و محتویات آن را در فایل `zip` ارسالی قرار دهید. (خود پوشه `src` را**حتما** ارسال کنید)
+ تایپ کردن دقیق متنهای خواسته شده و مطابقت کامل آنها با شکلهای داده شده در صورت سوال از اهمیت بالایی برخوردار است. بنابراین توصیه میکنیم به جای تایپ کردن این رشتهها بصورت دستی، از آدرسدهی به مواردی که در فایل `strings.json` وجود دارند استفاده کنید.
+ برای تکمیل خواستههای پروژه، `component` تعریف شده در فایل ```Root.js`` موجود در پوشه `src` را بعنوان `component` ریشهای درنظر بگیرید و تغییری در فایل `index.js` موجود در ریشه پروژه اولیه ایجاد نکنید.
+ ارسالهای شما توسط داور آنلاین امتیازدهی میشود و برای انجام کارهایی که در صورت سوال گفته نشده، **(مثلا اضافه کردن `style`)**امتیاز اضافهای درنظر گرفته نمیشود.
+ برای پیادهسازی خواستههای سوال، مجاز به استفاده از کتابخانه نیستید.
ساختار بخشی از فایل پایه بصورت زیر است. میتوانید فایلها و فولدرهای موردنیاز خود را به پوشه `src` اضافه کنید. همچنین مجازید **فقط** به فایلهایی که با علامت (---->) مشخص شدهاند کدهای خودتان را اضافه کنید (اما مجاز به تغییر یا حذف کدهای موجود در این فایلها نیستید). درنهایت پوشه `src` را همراه با محتویات آن، در قالب یک فایل فشرده ارسال کنید.
```
zipFile
│ .babelrc
│ .buckconfig
│ .DS_Store
│ .flowconfig
│ .gitattributes
│ .gitignore
│ .watchmanconfig
│ app.json
│ index.js
│ package.json
│ strings.json
│ yarn.lock
│
├───android
├───ios
├───src
│ Root.js <-------
│
└───__tests__
App.js
```
ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.