PDA

View Full Version : دست یابی به Pixel داخل image



yashar666
شنبه 03 آذر 1386, 17:55 عصر
با سلام

می خواستم ببینم چطوری می شه به pixel های داخل یه image که داخلش یه عکس

هست دسترسی داشته باشم به صورت خالی از عکس نمی خوام( Image1.Canvas.Pixels)

من می خوام یه عکس داخل image رو مثلا یه picxel ش رو عوض کنم

mzjahromi
شنبه 03 آذر 1386, 18:46 عصر
با همین Image.Canvas میتونید کاری که مد نظرتون هست رو انجام بدید
من قبلا این کار رو انجام دادم مشکلی نداره

yashar666
شنبه 03 آذر 1386, 22:57 عصر
نه نمیشه وقتی عکس داخلش هست اگه اقدام به گذاشتن یه picxel کنی error میده

اگه می شه یه تکیه کد برام بذارید از کاری که کردید فقط وقتی image خالی هست کار می کنه

dkhatibi
یک شنبه 04 آذر 1386, 06:22 صبح
من با این کد خطایی نمی بینم. اما کار هم درست نیست.

procedure TForm1.BitBtn1Click(Sender: TObject);
var
i,j:integer;
begin
for i:=1 to 100 do
for j:=1 to 100 do begin
Image1.Canvas.Pixels[i,j]:= Image2.Canvas.Pixels[i,j];
end;
end;

JAFO_IRAN
یک شنبه 04 آذر 1386, 06:53 صبح
شاید باید توجه بشه: رفتار، تا حدی میتونه به کلاس تصویر داخل image هم بستگی داشته باشه.

اگر این پست پاک نشد، امیدوارم مفید باشد...

ارادت

rasool_brn
یک شنبه 04 آذر 1386, 09:17 صبح
نه نمیشه وقتی عکس داخلش هست اگه اقدام به گذاشتن یه picxel کنی error میده
اگه می شه یه تکیه کد برام بذارید از کاری که کردید فقط وقتی image خالی هست کار می کنبهتر بود خطایی رو که می ده اینجا می نوشتی . به هر حال من حدس می زنم به خاطر فرمت عکسیه که به کار می بری . باید از تصاویر Bitmap استفاده کنی . پسوند عکسات رو به bmp تغییر بده .

yashar666
یک شنبه 04 آذر 1386, 16:45 عصر
خوب چرا jpeg نمیشه مگه image نمیتونه تحثل رو بخش کنه میتونه که!!!

خلاصه ممنونم

yashar666
یک شنبه 04 آذر 1386, 16:46 عصر
شما بر فرض حساب کنید که من می خوام مثلا جاهای که آبی هستن رو عکس رو عینا در image دوم بریزم باید چی کار کنم

AlirezaBahredar
یک شنبه 04 آذر 1386, 17:44 عصر
دوست عزیز همانطوری که دوستان گفتن بایستی از فرمت bmp برای تغییرات استفاده کنی.jpeg یا jpg یک قالب فشرده سازی شده از تصاویر هست.نتیجه گیری:شما قالب مربوطه خودت رو زمان runtime به فرمت استاندارد bmp در آورده عمل مربوطه(تغییر پیکسل) رو انجام می دی دوباره اونرو به فرمت دلخواهت ذخیره می کنی.

rasool_brn
یک شنبه 04 آذر 1386, 18:43 عصر
شما بر فرض حساب کنید که من می خوام مثلا جاهای که آبی هستن رو عکس رو عینا در image دوم بریزم باید چی کار کن
procedure TForm1.Button1Click(Sender: TObject);
var
i,j:integer;
begin
for i := 0 to Image1.Width do
for j := 0 to Image1.Height do
if Image1.Canvas.Pixels[i,j]=clBlue then
Image2.Canvas.Pixels[i,j]:=clblue;

end;این کد احتمالا کمکت کنه . سعی کن image دوم هم اندازه image اول باشه.

meisamphp
سه شنبه 15 مرداد 1387, 19:05 عصر
آقا چه جوری میشه یه عکسرو باز کرد یه پیکسلشو تغییر بدیم دوباره زخیره کنیم ؟؟


یه چیزی تو مایه های کد زیر ، اما این کد خطا میده ..

Image1.Picture.LoadFromFile('D:\Documents and Settings\Amin\Desktop\test.jpg');
Image1.Picture.Canvas.Pixels[10,10]:=100;
Image1.Picture.SaveToFile('c:\test.jpg');

meisamphp
شنبه 02 شهریور 1387, 19:31 عصر
ســلام ...
یعنی واقعا تو این فروم به این بزرگی ، هیچ کسی نیست کمک من بکنه ؟؟

Felony
شنبه 02 شهریور 1387, 20:33 عصر
:متفکر:دوست عزیز شما چرا فایل با پسوند jpg استفاده میکنید ، دوستان که بهتون گفتن نمیشه .
فایل jpg فشرده شده هستش و همین جوری نمیشه روش تغییر ایجاد کرد اگه میخوای رو فایل jpg تغییر ایجاد کنی ابتدا توسط مثال زیر که با نام Jpg to Bmp برات گزاشتم به Bmp تبدیل کن بعد اون رو تو شی image فراخوانیش کن و کارت رو روش انجام بده .

مثال زیر ( Chnage pic color ) رو هم برات نوشتم که روی فایلهای Bmp کار میکنه بقیه تغیراتش با خودت .

meisamphp
پنج شنبه 07 شهریور 1387, 13:39 عصر
دوباره سلام ..

آقا من میخوام حجم عکسم کم باشه یعنی مثلا یه عکسی که 1000 در 1000 پیکسل داره با فرمت jpg حدودا 800 کیلوبایت حجم داره اما همین عکس با فرمتهای دیگه بالق بر 20 مگابایت حجمش میشه ...
حالا رو هم رفته آیا میشه یه عکس با فرمت jpg رو باز کرد و مثلا یه پیکسل عکس رو تغییر داد و دوباره زخیره کردش طوری که حجم فایل عکس تغییر نکنه ؟؟ :متفکر:

Vahid_moghaddam
پنج شنبه 07 شهریور 1387, 16:19 عصر
دوباره به jpg تبدیلش کن

meisamphp
شنبه 16 شهریور 1387, 13:56 عصر
سلام ...
خوب برنامه ای سراغ داری که ین کارو بکنه ؟؟ یعنی تبدیل کنه bmp رو به jpg جوری که کوچکترین تغییری تو عکس ایجاد نشه ؟؟ :ناراحت:

Felony
شنبه 16 شهریور 1387, 18:53 عصر
دوست عزیز اینجا تالار برنامه نویسی دلفی هست وقتی دوستان میگن عکست رو به bmp تبدیل کن منظورشون اینکه توسط کدنویسی تو خود دلفی عکست رو بکن Bitmap و وقتی کارت با عکس تموم شد نتیجه رو دوباره تبدیل کن به Jpeg و ذخیرش کن .

در این مورد هم تا دلت بخواد تو سایت مطلب هست .
اگرم برنامه میخوای معمول ترینشون Paint خود ویندوز و PhotoShop .