我已经编写了此页面(使用 DataTables、PHP 和 Bootstrap 5.3)。如您所见,在表格的每一行中,我放置了一个按钮,该按钮可触发一个模式,其中包含一个响应图像(所有图像都包含在同一文件夹中)。一切正常。
当我加载页面时,需要一分钟左右才能完成加载,如果我在加载完成之前单击按钮,模式对话框不会显示图像。我怀疑所有图像(约 30 张)都是在打开网页时加载的。
如果是这样,有什么办法可以防止这种情况发生吗?我猜最好只在单击相应按钮时才加载每个单独的图像。
有没有办法在 .NET MAUI 8 中对齐/定位<Image/>
其显示区域内Aspect="AspectFill"
,或者有没有产生相同视觉效果的解决方法?
我试图获得一个宽大的显示区域,让高大的图像完全填满该区域,同时保持其纵横比。然后,图像应与其显示区域的顶部或底部对齐,因此只有图像的顶部或底部可见。输入图像的高度可能有所不同,但包装元素的高度是固定的,这就是我需要纵横比的原因。
<Border HeightRequest="100">
<Image
Source="t-pose.png"
Aspect="AspectFill"
WidthRequest="128"/>
</Border>
我想要运行 trivy sbom 生成器来生成一些图像,并将其从 Azure DevOps 管道推送到 Azure 容器注册表。
我的任务看起来像
- task: AzureCLI@2
inputs:
azureSubscription: 'MySubscription'
scriptType: bash
scriptLocation: inlineScript
inlineScript: |
az acr login --name ACR_Name
docker run --rm -v $(System.DefaultWorkingDirectory):/src aquasec/trivy image --format cyclonedx --output /src/sbom.json ACR_Name.azurecr.io/IMAGENAME:latest
不幸的是,它不能这样工作,但例外情况是
2024-11-12T12:24:45Z FATAL 致命错误图像扫描错误:扫描错误:无法初始化扫描仪:无法初始化图像扫描仪:无法在 [“docker” “containerd” “podman” “remote”] 中找到指定的图像“ACR_NAME/IMAGENAME:latest”:发生了 4 个错误:
- docker 错误:无法检查映像 (...):无法连接到 unix:///var/run/docker.sock 上的 Docker 守护程序。docker 守护程序是否正在运行?
- containerd 错误:未找到 containerd 套接字:/run/containerd/containerd.sock
- podman 错误:无法初始化 Podman 客户端:未找到 podman 套接字:stat podman/podman.sock:没有此文件或目录
- 远程错误:GET https://ACR_NAME/oauth2/token?scope=repository%3A...%3Apull&service=...: UNAUTHORIZED:需要身份验证,请访问 https://aka.ms/acr/authorization了解更多信息。
同时,我可以docker pull IMAGENAME
按预期从此脚本内部运行。我甚至尝试在运行 trivy 之前运行它,但它似乎不使用本地图像(结果完全相同)
是否有可能在容器内部“传递”授权?
大家好,Stackoverflow 用户,
我目前正在撰写我的学士论文,有超过 1,000 张图像需要分析。因此,我想制作一个宏,可以以相同的方式裁剪这些图像,应用相同的颜色阈值并测量高于此阈值的面积百分比;然后将它们添加到一个 csv/excel/text 文件中。Winogradsky柱的示例,其中包含我想要分析的硫还原细菌。我添加了一个示例图像,我想分析该图像中黑色的百分比是多少。
我曾尝试手动裁剪图像,添加正确的颜色滤镜,然后进行粒子分析。但是每次我这样做时,我得到的面积百分比都低得离谱,尝试将其放入宏中(如下所示)也不起作用。我已经添加了我尝试制作的宏,如下所示,您可能已经看到了;我对图像分析还很陌生。
//seting directory
input=getDirectory("Set directory here");
list = getFileList(input);
for (i = 0; i < list.length; i++)
Wholecolor(input, list[i]);
function Wholecolor (input,filename){
open (input + filename);
//open ROI manager
run("ROI Manager...");
roiManager("Show All");
// Assign raw opened image the name "currentImage"
currentImage=getImageID();
// cropping image
makeRectangle(834, 414, 3840, 3468);
run("Crop");
//Duplicate raw image to make a copy that will be modified to make a mask
run("Duplicate...", "title=Mask");
// Highlight the "Mask" image as the duplicate that will be thresholded to make the mask
selectWindow("Mask");
makeRectangle(1026, 492, 3504, 3294);
setBackgroundColor(0, 0, 0);
run("Clear Outside");
run("Color Threshold...");
// Color Thresholder 2.14.0/1.54f
// Autogenerated macro, single images only!
min=newArray(3);
max=newArray(3);
filter=newArray(3);
a=getTitle();
run("HSB Stack");
run("Convert Stack to Images");
selectWindow("Hue");
rename("0");
selectWindow("Saturation");
rename("1");
selectWindow("Brightness");
rename("2");
min[0]=0;
max[0]=255;
filter[0]="pass";
min[1]=0;
max[1]=255;
filter[1]="pass";
min[2]=30;
max[2]=255;
filter[2]="pass";
for (i=0;i<3;i++){
selectWindow(""+i);
setThreshold(min[i], max[i]);
run("Convert to Mask");
if (filter[i]=="stop") run("Invert");
}
imageCalculator("AND create", "0","1");
imageCalculator("AND create", "Result of 0","2");
for (i=0;i<3;i++){
selectWindow(""+i);
close();
}
selectWindow("Result of 0");
close();
selectWindow("Result of Result of 0");
rename(a);
// Colour Thresholding-------------
run("Analyze Particles...", "display exclude clear summarize overlay");
// Get particle analysis results and put them into a file
//clear ROI manager and Mask image so there is a clean workspace for the next image in the folder
roiManager("Deselect");
roiManager("Delete");
close("Mask");
close(filename+"_HSB");
//save data collected by ROI manager to a .csv file titled "WInogradksy_results"
dir=getDirectory("image");
//Change the file name here
name = "Winogradsky_results";
index = lastIndexOf(name, "\\");
if (index!=-1) name = substring(name, 0, index);
name = name + ".csv"; ///can change xls to csv, txt, etc.
saveAs("Measurements", dir+name);
close();
}
run("Clear Results");
我将非常感激任何能帮助我解决这个问题的人,提前谢谢大家!
首先,介绍一下背景:我目前正在开发一个个人项目,并使用免费的 OCR API(链接:https: //ocr.space/ocrapi,向下滚动页面即可查看文档)。问题是这个 API 支持远程图像的 URL、文件(图像)或 base64Image。我正在使用 Angular/Typescript 进行开发(使用 Ionic 实现移动兼容性)。
这是我的问题:我有一个带有以下 HTML 的 camera.component:
<video #video autoplay muted playsinline class="video-stream"></video>
<canvas #canvas class="canvas-container" hidden></canvas>
<ion-button (click)="captureImage()">Capture Image</ion-button>
TS文件(附件)包含一个服务ocrRequestsService,其代码如下:
scanImage(imageDataUrl: any) {
if (!imageDataUrl) {
return throwError(() => new Error('Error: Unable to convert the image.'));
}
console.log(imageDataUrl);
const data = { base64Image: imageDataUrl, apikey: environment.ocrApiKey, OCREngine: 2, scale: true, filetype: 'JPG' };
return fetch(this.apiUrl, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify(data),
})
.then(response => response.json())
.then(data => {
console.log('Success:', data);
return data;
})
.catch((error) => {
console.error('Error:', error);
return error;
});
}
blobToImage(blob: Blob) {
return new File([blob], 'image.jpeg', { type: 'image/jpeg' });
};
问题如下:API 成功从我的scanImage
方法接收数据(所有参数均有效),但出现此错误:E216: Unable to detect the file extension, or the file extension is incorrect, and no 'file type' provided in request.Please provide a file with a proper content type or extension, or provide a file type in the request to manually set the file extension.
我已经尝试使用一个简单的 URL、一个 blob 和 Base64 编码。
因此,我已经尝试过仅传递字符串,但是不起作用(同样的错误),尝试使用 base64 url(也不起作用),还尝试过使用另一种格式(png)。
提前致谢!😉
我遇到了一个问题,似乎是个 bug。但也许我忽略了 iOS 18 的一些内容。
描述:单击按钮后,我将某些视图渲染为图像并将其存储为数据以供以后使用:
struct ContentView: View {
@State private var data:Data?
private var img:Image {
if let data {
return Image(uiImage: UIImage(data: data) ?? UIImage())
}else{
return Image(systemName: "xmark.circle.fill")
}
}
var body: some View {
VStack {
TestView()
Button("Test") {
let ren=ImageRenderer(content: TestView())
if let data=ren.uiImage?.pngData() {
self.data=data
}
}
img
.resizable()
}
}
}
struct TestView:View {
var body: some View {
VStack {
ZStack {
Rectangle()
.fill(Color.red)
Text("TEST")
}
ZStack {
Rectangle()
.fill(Color.test)
Text("TEST 2")
}
}
}
}
Color.test 在 Assets 目录中定义。这在 iOS/iPadOS 18 之前的版本上运行良好。
带有测试 2 的矩形没有颜色。
有什么想法吗?
使用以下代码,我无法在 tkinter 单元格中显示图像:
from tkinter import *
from tkinter import filedialog
from PIL import Image, ImageTk
root = Tk()
root.geometry=("1000x1000")
def orig():
orig_image = filedialog.askopenfilename(filetypes=[("Image file", "*.jpg"), ("All files", "*.")])
my_img = ImageTk.PhotoImage(Image.open(orig_image))
lbl = Label(image=my_img)
lbl.grid(row=0, column=0)
orig()
root.mainloop()
但是,通过将其从方法中取出,它就可以正常工作:
from tkinter import *
from tkinter import filedialog
from PIL import Image, ImageTk
root = Tk()
root.geometry=("1000x1000")
orig_image = filedialog.askopenfilename(filetypes=[("Image file", "*.jpg"), ("All files", "*.")])
my_img = ImageTk.PhotoImage(Image.open(orig_image))
lbl = Label(image=my_img)
lbl.grid(row=0, column=0)
root.mainloop()
我错过了什么?
这是一个更大项目的一部分,我想显示“原始” OCR 扫描图像,然后使用其他方法在原始图像旁边(在另一列中)显示“校正后的图像”,以显示该校正是否有所改善。
我有一张地图图像,还有一个圆形的 Seaborn 条形图。地图如下所示:
Seaborn 的图如下所示:
我怎样才能将两者重叠,并使地图上的 Seaborn 图偏移以匹配特定坐标?例如,我想要类似下图的东西,其中圆形条形图在图像上偏移,已知坐标指示特定的纬度、经度位置。
我尝试使用这个例子中的代码:
img = plt.imread('map.jpg')
fig, ax = plt.subplots(figsize=(6, 6))
plt.style.use('dark_background')
sns.barplot(x='Provider', y='Var_diff', hue='Provider', data=one_stat, ax=ax,
palette='gist_rainbow', legend=False)
# Turn off surrounding circular frame
ax.set_frame_on(False)
# Turn off axis labels
ax.set(xlabel=None); ax.set(ylabel=None)
ax.set(xticks=[]); ax.set(yticks=[])
ax.imshow(img, extent=[-18, 18, -9, 9])
,但使用相同的参数(subplot_kw=dict(polar=True)
)在图形和轴定义中使条形图呈圆形(例如fig, ax = plt.subplots(figsize=(6, 6), subplot_kw=dict(polar=True))
)弯曲背景图像以匹配圆形条形图:
去掉参数会得到纯矩形图:
有没有办法定义两个不同的图形和轴并将它们重叠?或者我如何才能获得最终结果?
解决方案
使用@Stef 的回复,我的最终绘图命令最终是:
img = plt.imread('map.jpg')
fig, ax_bg = plt.subplots()
ax_bars = fig.add_axes(rect=(0.2, 0.2, 0.2, 0.2), polar=True)
plt.style.use('dark_background')
sns.barplot(x='Provider', y='Var_diff', hue='Provider',
data=one_stat, ax=ax_bars, palette='gist_rainbow', legend=False)
# Turn off surrounding circular frame
ax_bars.set_frame_on(False)
# Turn off axis labels
ax_bars.set(xlabel=None); ax_bars.set(ylabel=None)
ax_bars.set(xticks=[]); ax_bars.set(yticks=[])
ax_bg.imshow(img, extent=[-180, 180, -90, 90])
产生
我正在构建一个程序,该程序生成图像并通过 REST 调用将它们作为 Base64 编码字符串发送到网页。所有图像均已生成并拉入,没有任何问题,除了迄今为止的一张图像。
我渲染了一张图像,尽管我努力对其进行编码/解码循环,但它似乎无法解码。我尝试过使用 .NET、Python 和各种 Base64 验证网站来查找是否可以正确解码由该图像生成的编码字符串,但我对可能发生的情况感到茫然。图像将保存看起来正确的结果的 .png,但任何将位图转换为 Base64 编码字符串的尝试都将导致字符串似乎无法加载到图像中。该字符串经过验证是正确的 base64 编码,并且编码过程在所有其他情况下都工作正常,但我需要知道正在渲染的图像有什么问题以及为什么它不能作为编码数据工作。
渲染这些图像的过程是从文件中提取原始图像,并根据用户参数进行裁剪和缩放。新更改的文件被编码为 base64 字符串并作为 REST 调用的结果发送。
这是我在 ASP.NET Core 中使用的代码:
private string GetResizedMapString(Map map, CanvasDisplaySettings disp)
{
string path = GetUploadPath(map.SourceName);
if (path != string.Empty)
{
Image srcImg = Image.FromFile(path);
RectangleF[] imgSizes = GetRenderAreas(srcImg, map, disp);
if (imgSizes != null)
{
Bitmap destImg = new((int)imgSizes[0].Width, (int)imgSizes[0].Height);
using var graphics = Graphics.FromImage(destImg);
graphics.DrawImage(srcImg, imgSizes[0], imgSizes[1], GraphicsUnit.Pixel);
// CREATING TESTING IMAGE AND ENCODED STRING FILES:
string testImgName = "TestImgFrom" + disp.DisplayID;
string filePath = Path.Combine(DepoCollection, testImgName);
String imageString = ConvertBitmapToString(destImg); // New Image String
String imageStringPath = filePath + ".txt"; // New Encoded String File
String imagePngPath = filePath + ".png"; // New Image File
// Save to PNG
destImg.Save(imagePngPath);
graphics.Dispose();
// Save to .txt to test the encoded string
using (StreamWriter outputFile = new StreamWriter(imageStringPath))
{
outputFile.WriteLine("data:image/png;base64," + imageString);
}
return imageString;
}
else return "";
}
}
static string ConvertBitmapToString(Bitmap bitmap)
{
// Convert the bitmap to a byte array
MemoryStream ms = new MemoryStream();
bitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
byte[] byteImage = ms.ToArray();
// Convert the byte array to a base64 string
string base64String = Convert.ToBase64String(byteImage);
return base64String;
}
这个过程已经适用于许多其他图像,并且缩放之前的原始图像能够被编码/解码。我尝试过使用 Python 进行类似的编码/解码过程,以及将图像加载到网上找到的其他 Base64 编码软件中。
程序生成的图像比源图像大得多,因此我无法在此处上传。我想知道为什么发生的事情会导致文件大小增加如此之多,以及是否可能相关。
源图像:1.34MB,2200 x 2200 像素
渲染图像:24.00 MB,2998 x 2998 像素
以下是渲染文件的 Google 云端硬盘链接:https://drive.google.com/file/d/1wxkWCEx3DyUG2yenWoEfOsi9QNEK38FK/view ?usp=sharing
感谢您提供有关正在发生的情况的任何线索以及有关如何避免这些问题的任何建议!