ورود

View Full Version : درج لینک سایت به همراه نمایی از سایت



piter11
دوشنبه 01 مرداد 1397, 09:33 صبح
من میخوام با درج لینکی از سایت تو یه باکسی نما و عکسی از آن سایت نمایش داده شه میشه بگید چطوریه یا باید دنبال چی بگردم تو نت؟
ممنون

میلاد رئیسی
دوشنبه 01 مرداد 1397, 10:46 صبح
سلام .
برای این که favicon سایت را به دست بیاورید و آن را در کنار لینک خودتون نمایش بدید بایست از آدرس https://www.google.com/s2/favicons?domain=www.google.com استفاده کنید که به جای www.google.com آدرس دامنه را درج میکنید

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

public ActionResult Save()
{
var url = "http://www.google.co.uk";

FileContentResult result = null;
Bitmap bitmap = null;

var thread = new Thread(
() =>
{
bitmap = ExportUrlToImage(url, 1280, 1024);
});

thread.SetApartmentState(ApartmentState.STA); //Set the thread to STA
thread.Start();
thread.Join();

if (bitmap != null)
{
using (var memstream = new MemoryStream())
{
bitmap.Save(memstream, ImageFormat.Jpeg);
result = this.File(memstream.GetBuffer(), "image/jpeg");
}
}

return result;
}

private Bitmap ExportUrlToImage(string url, int width, int height)
{
// Load the webpage into a WebBrowser control
WebBrowser wb = new WebBrowser();
wb.ScrollBarsEnabled = false;
wb.ScriptErrorsSuppressed = true;

wb.Navigate(url);
while (wb.ReadyState != WebBrowserReadyState.Complete)
{
Application.DoEvents();
}

// Set the size of the WebBrowser control
wb.Width = width;
wb.Height = height;

Bitmap bitmap = new Bitmap(wb.Width, wb.Height);
wb.DrawToBitmap(bitmap, new System.Drawing.Rectangle(0, 0, wb.Width, wb.Height));
wb.Dispose();

return bitmap;
}

piter11
دوشنبه 01 مرداد 1397, 11:08 صبح
ممنون مهندس فقط الان نمیدونم چطور این فایل عکس bitmap رو تبدیل کنم به فایل قابل نمایش عکس در تگ html

میلاد رئیسی
دوشنبه 01 مرداد 1397, 14:16 عصر
public class HomeController : Controller
{

public ActionResult Save(string url)

{
var url = url;


FileContentResult result = null;
Bitmap bitmap = null;

var thread = new Thread(
() =>
{
bitmap = ExportUrlToImage(url, 1280, 1024);
});

thread.SetApartmentState(ApartmentState.STA); //Set the thread to STA
thread.Start();
thread.Join();

if (bitmap != null)
{
using (var memstream = new MemoryStream())
{
bitmap.Save(memstream, ImageFormat.Jpeg);
result = this.File(memstream.GetBuffer(), "image/jpeg");
}
}

return result;
}

}




آدرس عکس :

<img src="http://yourdomein.com/Home/save?url="Domein"" alt="" title="" border="0">

piter11
دوشنبه 01 مرداد 1397, 14:57 عصر
148595

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

میلاد رئیسی
دوشنبه 01 مرداد 1397, 15:10 عصر
سایز عکس ها رو بیارید پایین و در این خط میتونید عکس ها رو به جای این که در حافظه نگهدارید در هاست ذخیره کنید


bitmap.Save(memstream, ImageFormat.Jpeg);






bitmap.Save(mynewpath + "somefilename.jpg", ImageFormat.Jpeg);

piter11
دوشنبه 01 مرداد 1397, 15:28 عصر
mynewpath اینجا چی بنویسم؟

میلاد رئیسی
دوشنبه 01 مرداد 1397, 16:38 عصر
آدرس فیزیکی که میخوایید فایلتون دخیره بشه! :اشتباه:

piter11
دوشنبه 01 مرداد 1397, 18:23 عصر
آدرس فیزیکی که میخوایید فایلتون دخیره بشه! :اشتباه:


ارور میده


if (bitmap != null)
{


bitmap.Save("~/images" + "somefilename.jpg", ImageFormat.Jpeg);






}

میلاد رئیسی
دوشنبه 01 مرداد 1397, 23:39 عصر
bitmap.Save(HttpContext.Current.Server.MapPath(Pat h.Combine("/images", name + ".jpg")), ImageFormat.Jpeg);

piter11
سه شنبه 02 مرداد 1397, 09:10 صبح
bitmap.Save(HttpContext.Current.Server.MapPath(Pat h.Combine("/images", name + ".jpg")), ImageFormat.Jpeg);





ارور میده Current

میلاد رئیسی
سه شنبه 02 مرداد 1397, 11:07 صبح
mvc 5 برنامه مینویسید یا core ?

میلاد رئیسی
سه شنبه 02 مرداد 1397, 11:11 صبح
در dotnet core شما باید فضای نامی system.web را در برنامه خودتون بنویسید



using Microsoft.AspNetCore.Http;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace System.Web
{
public static class HttpContext
{
private static IHttpContextAccessor _contextAccessor;

public static Microsoft.AspNetCore.Http.HttpContext Current => _contextAccessor.HttpContext;

internal static void Configure(IHttpContextAccessor contextAccessor)
{
_contextAccessor = contextAccessor;
}
}
}



و در بخشConfigure در فایل startup.cs این گزینه رو اضافه کنید


app.UseStaticHttpContext();

piter11
سه شنبه 02 مرداد 1397, 11:22 صبح
mvc 5 برنامه مینویسید یا core ?

mvc5.......

mr.sirwan
سه شنبه 02 مرداد 1397, 12:26 عصر
فک کنم همون قسمت Server.MapPath به تنهایی جواب بده نیازی به HttpContext.Current نیست

piter11
سه شنبه 02 مرداد 1397, 13:32 عصر
ایولا درست شد

piter11
سه شنبه 02 مرداد 1397, 19:08 عصر
فقط یه سوال دیگه چطور میشه نام عنوان سایت دیگرو با دستور گرفت
مثل همین دستور


https://www.google.com/s2/favicons?domain= (https://www.google.com/s2/favicons?domain=)www.google.com

حل شد .....