رفتن به مطلب

امین مهدی نژاد

معاون انجمن
  • تعداد ارسال ها

    716
  • تاریخ عضویت

  • آخرین بازدید

  • روز های برد

    135

پست ها ارسال شده توسط امین مهدی نژاد

  1. نحوه sign کردن یک آپ

    کد زیر فایل زیپ حاوی محتویات یک آپ رو به عنوان نمونه تبدیل به apk و اونو sign می کنه

    File.Copy(File.DirAssets,"a.zip",File.DirRootExternal,"a.zip")
    Dim ir As irZipSigner
    ir.setKeymode("platform")
    ir.signZip(File.DirRootExternal&"/a.zip",File.DirRootExternal&"/a.apk")
    ToastMessageShow("end",True)

    «موفق باشید.»

    • پسندیدن 4
    • تشکر 1
  2. irZipSigner

    مشاهده فایل

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

     کتابخونه kellinwood در بین Signer ها معروفیت بیشتری دارد.که اونو براتون فراهم نمودم

    کاربرد

    خیلی از نرم افزارها ممکنه نیاز به Sign کردن داشته باشند مثلا

    • کامپایلرها
    • ریکامپایلرها:gerye:
    • کتابسازها

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

    توضیحات و نحوه استفاده در ادامه خواهد آمد

    «موفق باشید.»


     

    • پسندیدن 7
    • تشکر 1
  3. آپلود فایل

    برای آپلود فایل در این کتابخونه باید از ساب Upload استفاده کنید که به روش زیر بکار می رود

    ir.Upload("http://example.com",File.DirRootExternal,"input.png",1000)

    آرگومان آخر که عدد 1000 نوشتم فقط شناسه درخواست است که در هنگام بازگشت نتیجه می توان با آن نوع درخواست خود رو متوجه شد. والبته هر عدد دیگری می تواند باشد. در این کتابخونه امکان ارسال 8 درخواست همزمان به سرور وجود دارد که همین آرگومان هر یک را مشخص خواهد نمود.

    نتیجه درخواست

    در صورت که ارتباط با سرور به درستی صورت پذیرد رویداد Finish  مقادیر برگشتی را به ما می دهد مثلا

    Sub AssocNet_Finish(str As String,id As Int)
    	Select id
    		Case 1000
    			Msgbox(str,id)
    	End Select
    End Sub

    و در هنگام خطا رویداد زیر

    Sub AssocNet_Error(str As String,id As Int)
    	ToastMessageShow(str,False)
    End Sub

    کد PHP مثال

    <?php
    if(isset($_GET['FileName'])){
    	$PostData = file_get_contents("php://input");
    	$File = fopen($_GET['FileName'],"wb");
    	fwrite($File, $PostData); 
    	fclose($File);
    	echo "uploaded file";
    }
    ?>

    نام فایل ارسالی شما بوسیله $_GET['FileName'] قابل استفاده می باشد.

    «موفق باشید.»

    • پسندیدن 4
  4. آموزش کار با کتابخانه

    کلاس های این کتابخانه تصاویر رو به صورت آرایه ای از اعداد گرفته و به همون صورت به ما می دهند

    که جهت آسان کردن این تبدیلات از متدهای زیر استفاده نمایید.

    Dim ir As irBMPUtils
    Dim arr() As Int=ir.bitmapToIntArray(bmp)
    ir.toBitmap(arr,bmp.Width,bmp.Height)

    معمولا هر کلاس متدی به نام filter دارد که می توان با آن افکت را اعمال نمود مثلا

    	Dim ir As irBMPUtils
    	Dim ir2 As irGrayscaleFilter
    	Dim bmp As Bitmap=LoadBitmap(File.DirAssets,"a.jpg")
    	Dim h As BitmapDrawable
    	h.Initialize(ir.toBitmap(ir2.filter(ir.bitmapToIntArray(bmp),bmp.Width,bmp.Height),bmp.Width,bmp.Height))
    	Activity.Background=h

    در مثال بالا تصویر سیاه و سفید می شود

    «موفق باشید.»

    • پسندیدن 5
  5. irJHLabs

    مشاهده فایل

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

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

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

    کاربرد

    هر افکت یک کلاس جدا دارد که با ir شروع می شوند که براحتی می توان آنها را یافت

    منبع

    لینک زیر از سایت سازنده می باشد که لیست افکت را هم نشان می دهد

    Jerry's Java Image Processing Pages

    «موفق باشید.»


     

    • پسندیدن 7
  6. Associative

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

    داده های جیسون معمولا شامل مقادیر رشته ای - آرایه ای و یا آبجکت هستند. فرض کنید هر سه آنها به این ترتیب دریافت شده است

    { "string":"example",
    
    
    "array":[ 
    { "id": "1", "name": "mehdi", "family": "izadi","city": "city_1" } , 
    { "id": "2", "name": "nima","family": "ghobadi", "city": "city_2" }],
    
    
    "object":{"id":"1","name":"amin"}
    }

    خب در برنامه برای واکاوی هر کدام به طریق زیر عمل خواهیم کرد

    رشته:

    Dim ass As Assoc
    ass.Initialize(json)
    ass.Get("string")

    آرایه:

    Dim ass As Assoc
    ass.Initialize(json)
    ass.Get("array,0,id")

    آبجکت:

    Dim ass As Assoc
    ass.Initialize(json)
    ass.Get("object,name")

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

    نکته: چنانچه مقدار درخواستی شما در جیسون نباشد مقدار Null برگردانده می شود.که با یک شرط می شود آن را تنظیم کرد

    «موفق باشید.»

    • پسندیدن 5
  7. AssocNet

    مشاهده فایل

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

    این کتابخونه رو از ترکیب موارد زیر ساخته ام

    • Okhttp
    • Volley
    • Associative

    فواید

    • جایگزین مناسبی برای httputils
    • ساده تر از volley
    • راه اندازی سریعتر از کتابخونه های اینترنت دیگر
    • و در نهایت مانند کتابخونه های دیگرم از متدهای اضافی استفاده نکردم تا کارکردی ساده داشته باشه
    • با وجود استفاده از okhttp قدرت مناسبی هم داره

    آموزش کار با این کتابخونه در قسمت کتابخونه های انجمن قرار خواهد گرفت

    «موفق باشید.»


     

    • پسندیدن 6
  8. کدهای بیسیک من خطا دادند از آقا آرتا پرسیدم گفتن باس کتابخونشو wrap کنی

    واس همین Batch نوشتم

    البته من همیشه نام پروفایلم تو تلگرام بر همین مبنا انتخاب میشه

    @echo off
    set feeling=%*
    IF %feeling%=="Love"(
        C:\Amin>Cd To Love
    )ELSE IF %feeling%=="animosity"(
    	C:\Amin>Cd To Hate
    )ELSE IF %feeling%=="ennui"(
    	C:\Amin>Cd To Change
    )ELSE IF %feeling%=="loneliness"(
    	C:\Amin>Travel
    )ELSE IF %feeling%=="chagrin"(
    	C:\Amin>Change Music
    )ELSE(
    	C:\Amin>Write Code
    )

    :53::53::53:

    • پسندیدن 7
  9. داشتم گیتهاب گردی می کردم یه ورژن کم حجم FFMPEG که فقط کدک های رایج مدیایی رو داره یافتم پیوست می کنم تا برای کسانی که نیازی به کدک های غیر رایج ندارند برنامشون کمحجمتر باشه.

    ffmpegmin(armeabi-v7a)

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

    «موفق باشید.»

    • پسندیدن 6
  10. در هم اکنون، سیدمحمد گفته است :

    سلام

    این کتابخونه دقیقا چکار میکنه؟؟

    یعنی سایز تصاویر رو کم میکنه؟ روی کیفیت تصاویر تاثیر میگذاره؟؟

    فرمت webp توسط گوگل طراحی شده و حمایت میشه با قابلیت های زیر

    • از JPEG کم حجمتر
    • مانند PNG پسزمینه شفاف داره
    • مانند GIF هم قابلیت متحرک سازی داره

    کم حجم بودن این فرمت به حدی می باشه که طبق گفته گوگل اگر تمام وبسایت ها از WEBP استفاده کنند 30 درصد از ترافیک کل اینترنت کم می شود.

    برای آپ های اندروید نیز چنین است.

    WEBP در اندروید های بالا توسط گوگل افزوده شده ولی در اندروید 4.3 به پایین باید کتابخونه ای براش باشه که اینم اونه:viannen_44:

    تقدیم انجمن کردم تا برای مشکل حجم آپ ها یه راه حل مناسب باشه:give_rose:

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

    «موفق باشید.»

    • پسندیدن 2
    • تشکر 1
  11. مثال و نحوه استفاده

    خروجی های زیادی به زبان CPP از FFMPEG برای اندروید گرفته شده است.که هر کدام ممکنه بر اساس نیاز تولید کننده قابلیت هایی رو داشته باشند.

    در لینک زیر دو نمونه قرار دادم

    خب این کتابخونه ها رو میشه از طرق مختلف مثل دانلود کردن و یا قرار دادن در پوشه Files پروژتون به برنامه اضافه کنید. تا بشه اونها رو لود و استفاده کنید.

    مثال

    Sub Globals
    	Dim ir As irFFMPEGPro
    	Dim tim As Timer
    	Private Label1 As Label
    End Sub
    
    Sub Activity_Create(FirstTime As Boolean)
    	Activity.LoadLayout("Layout1")
    	ir.install(File.OpenInput(File.DirAssets,"ffmpeg"),"ffmpeg")
    	ir.init("ffmpeg")
    	tim.Initialize("tim",500)
    End Sub
    Sub tim_Tick
    	If ir.LOGTAG=="Ending FFMPEG" Then
    		tim.Enabled=False
    		ToastMessageShow("End",True)
    	Else
    		Label1.Text=ir.LOGTAG
    	End If	
    End Sub
    
    
    Sub Button1_Click
    	tim.Enabled=True
    	Dim str(4) As String
    	str(0)="ffmpeg"
    	str(1)="-i"
    	str(2)=File.DirRootExternal&"/a.mp3"
    	str(3)=File.DirRootExternal&"/a.wav"
    	ir.run(str)
    End Sub

    این کد یک فایل mp3 رو به wav تبدیل می کنه

    توضیحات

    نصب کتابخونه FFMPEG

    	ir.install(File.OpenInput(File.DirAssets,"ffmpeg"),"ffmpeg")

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

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

    ir.init("ffmpeg")

    این هم یک دستور که لیست کامل دستورات از قبل در انجمن قرار داده شده

    	Dim str(4) As String
    	str(0)="ffmpeg"
    	str(1)="-i"
    	str(2)=File.DirRootExternal&"/a.mp3"
    	str(3)=File.DirRootExternal&"/a.wav"
    	ir.run(str)

    دستورات در محیط ویندوز به صورت رشته نوشته می شوند ولی در اینجا هر قسمت که با space جدا شده بوده به صورت آیتمی از آرایه به کتابخونه فرستاده می گردد

    irFFMPEGLoaderEX

    «موفق باشید.»

    • پسندیدن 9
  12. LibWrapper


    توضیحات

    کتابخونه های زیادی برای جاوا تا کنون تهیه شده. و کاربران بی فور هم نیاز فراوانی به استفاده از آنها دارند.به همین دلیل بعد از شروع کار با بی فور جهت آسان شدن Wrap کردن فایل های jar این برنامه رو ساخته ام. از این کتابخونه برای انتخاب متد و کلاس مناسب جهت کار با irLSDK هم می توان استفاده کرد.

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

    دو ورژن از این برنامه ساختم با دو دیکامپایلر مختلف که این ورژن اولیه اون بود.ولی کتابخونه هر دو دیکامپایلر رو قرار داده ام.تا کار با هر کدام رو آسان تر و بهتر دیدید.توسعه بدهید.

    «موفق باشید.»


     

    • پسندیدن 9
  13. حجم ماژول های کدک CPP کتابخونه 600kb هستش که اگه می خواین می تونین بر اساس نوع CPU دستگاه مشتری کدک مناسب رو انتخاب کنید. اینطوری حجم کتابخونه به یک سوم کاهش پیدا میکنه

    برای اینکار فایل JAR کتابخونه رو با وینزیپ باز کرده و محتویات پوشه LIB رو حذف کنید.

    سپس فایل زیر رو دانلود کنید.

    OpusCodec

    حالا کدک مناسب رو جایگزین کنید.

    البته 600kb نیازی به این روش نباید داشته باشه. و این کتابخونه رو در زمانی ساختم که یکی از آشنایان برنامه ای با 400 فایل صوتی ساخته بود. که در این جور شرایط بهترین گزینه همین Opus هستش.

    «موفق باشید.»

    • پسندیدن 2
  14. توضیحات

    متدها

    • Init - مقدار دهی اولیه
    • loadFromFile - بارگذاری فایل صوتی
    • loadFromUrl - بارگذاری فایل از اینترنت
    • play
    • pause
    • stop
    • setPosition
    • getDuration

    رویدادها

    • FAILED
    • FINISHED -پایان اجرا
    • READING_HEADER
    • READY_TO_PLAY
    • PLAY_UPDATE(pos As Int) - هر بار خواندن داده جدید
    • TRACK_INFO(dur As Long,bun As AOBundle) - هنگام خواندن اطلاعات فایل

    رویداد TRACK_INFO چنانچه از irLSDK استفاده نمی کنید به صورت زیر خواهد بود

    TRACK_INFO(dur As Long,bun As Object)

    مثال:

    Sub Globals
    	Dim ir As irOpus
    	Private Label1 As Label
    	Private ProgressBar1 As ProgressBar
    End Sub
    
    Sub Activity_Create(FirstTime As Boolean)
    	Activity.LoadLayout("Layout1")
    	ir.Init("pl")
    	File.Copy(File.DirAssets,"exam.opus",File.DirInternal,"exam.opus")
    	ir.loadFromFile(File.DirInternal&"/exam.opus")
    End Sub
    
    Sub Activity_Resume
    
    End Sub
    
    Sub Activity_Pause (UserClosed As Boolean)
    
    End Sub
    
    
    Sub Button1_Click
    	ir.play
    End Sub
    Sub pl_PLAY_UPDATE(pos As Int)
    Try
    	ProgressBar1.Progress=pos*100/ir.getDuration
    Catch
    	Log(LastException)
    End Try
    End Sub
    Sub pl_TRACK_INFO(dur As Long,bun As AOBundle)
    	Label1.Text="title="&bun.getString("title")&"#artist="&bun.getString("artist")&"#album="&bun.getString("album") _
    	&"#date="&bun.getString("date")&"#track="&bun.getString("track")
    End Sub
    Sub pl_FINISHED
    	ToastMessageShow("End", False)
    End Sub
    
    Sub Button2_Click
    	ir.pause
    End Sub
    
    Sub Button3_Click
    	ir.stop
    End Sub

    irOpusExample

    «موفق باشید.»

     

    • پسندیدن 1
  15. irOpus


    کدک صوتی Opus به دلیل قابلیت های فراوانی و فشرده سازی بالایی که دارد در بسیاری از نرم افزارهای بروز و کاربردی همچون تلگرام مورد استفاده فرار گرفته است.

    اهمیت

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

    اوپاس (کدک صوتی) - ویکی‌پدیا، دانشنامهٔ آزاد

    گیتهاب

    مخزن این کتابخانه در گیتهاب در لینک زیر قرار دارد. ولی هنوز خود کتابخونه رو لود نکردم.کمی زمان خواهد برد.:gamer2:

    GitHub - aminmn/irOpus

    توضیحات

    مثال و توضیحات در قسمت کتابخانه ها قرار خواهد گرفت

    «موفق باشید.»


     

    • پسندیدن 5
  16. نکاتی در مورد webp

    تلگرام

    استیکرهای تلگرام هم از فرمت webp ساخته شده اند.یکی از مواردی که من در نرم افزار های ساخت استیکر دیدم عدم تعریف دقیق نوع تصویر بوده که سبب میشه بعد از ارسال استیکر از درون اون آپ به تلگرام ابتدا به صورت فایل دیده شده و بعد از ورود دوباره به قسمت چتروم تلگرام  به صورت استیکر دیده شوند. که خب این آپ ها معمولا از قبل اینرو نوشته اند تا کاربران دلخور نباشند. ولی با تعریف نوع تصویر به webp مشکل حل میشه

    مبدل Webp

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

    دانلود Voralent WebPconv 6.0 - نرم افزار فشرده ساز حرفه ای تصاویر

    جلوگیری از تکرار تبدیل در آپ

    اگه تصاویر زیاد باشند و بخواید چندین  تصویر رو با هم نمایش بدید بهتره با اولین تبدیل یک تصویر از webp به bitmap اونو در حافظه ذخیره کنید تا سرعت برنامه مناسب بمونه

    «موفق باشید.»

     

    • پسندیدن 3
  17. irWebp


    فرمت webp کم حجمترین فرمت تصویری حال حاضر است. این فرمت از پس زمینه شفاف هم استفاده کرده و می تواند جایگزین png و jpg باشد.

    اهمیت

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

    گیتهاب

    کد کتابخونه رو در گیتهاب قرار دادم. که در صورت نیاز می تونین استفاده کنید.البته webp قابلیت های دیگری هم داره به همین دلیل کد رو گذاشتم تا در صورت نیاز بتونین اونها رو هم به کد اضافه کنید.

    GitHub - aminmn/irWebp

    آموزش

    مثال و آموزش اون در قسمت کتابخونه ها قرار خواهند گرفت

    «موفق باشید.»


     

    • پسندیدن 9
×
×
  • اضافه کردن...